Heim > Datenbank > MySQL-Tutorial > Wie kann ich Oracles DBMS_OUTPUT mithilfe von JDBC effizient abrufen?

Wie kann ich Oracles DBMS_OUTPUT mithilfe von JDBC effizient abrufen?

Susan Sarandon
Freigeben: 2024-12-31 09:25:14
Original
613 Leute haben es durchsucht

How Can I Efficiently Fetch Oracle's DBMS_OUTPUT Using JDBC?

DBMS_OUTPUT mit JDBC abrufen

Beim Umgang mit Datenbankprozeduren oder -funktionen mit Java und JDBC kann es erforderlich sein, die Ausgabe zu erfassen, ohne zusätzliche zu erstellen Objekte oder das Ändern des Datenbankschemas. Ein Ansatz besteht darin, das DBMS_OUTPUT-Paket von Oracle zu verwenden.

Um die Ausgabe von DBMS_OUTPUT.get_lines abzurufen, kann ein JDBC-Aufruf an eine gespeicherte Prozedur wie die folgende erfolgen, die die notwendigen Schritte zum Aktivieren der Pufferung, Ausgabe von Zeilen und Abrufen enthält die Zeilen und das Deaktivieren der Pufferung:

declare
  num integer := 1000;  
begin
  dbms_output.enable();
  dbms_output.put_line('abc');
  dbms_output.put_line('hello');
  dbms_output.put_line('so cool'); 
  dbms_output.get_lines(?, num);
  dbms_output.disable();
end;
Nach dem Login kopieren

Im JDBC-Code kann diese Prozedur mit a aufgerufen werden CallableStatement und die getArray-Methode zum Abrufen der Ausgabe als Array:

CallableStatement call = c.prepareCall(procedureQuery);
call.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
call.execute();

Array array = call.getArray(1);
System.out.println(Arrays.asList((Object[]) array.getArray()));
Nach dem Login kopieren

Ein weiterer Vorteil der Verwendung von DBMS_OUTPUT.get_lines ist die Möglichkeit zur Massenübertragung, wodurch der Overhead einzelner DBMS_OUTPUT.get_line-Aufrufe erheblich reduziert wird. Benchmarking hat gezeigt, dass der Massenansatz bis zu 30-mal schneller sein kann als der Einzelzeilenansatz, wenn er über JDBC ausgeführt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Oracles DBMS_OUTPUT mithilfe von JDBC effizient abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage