In einer Oracle-Datenbank ist eine gespeicherte Prozedur ein vorkompilierter Codeblock, der definierte Vorgänge ausführen kann, indem er die gespeicherte Prozedur bei Bedarf aufruft. In einer gespeicherten Prozedur können Sie neben der Ausführung von SQL-Anweisungen auch Parameter für die Eingabe, Ausgabe oder beides definieren. In diesem Artikel werden hauptsächlich die Ausgabeparameter und ihre Anwendungen in gespeicherten Prozeduren vorgestellt.
1. Das Konzept der Ausgabeparameter
In einer gespeicherten Prozedur ist ein Ausgabeparameter eine Variable, die verwendet wird, um Ergebnisse aus der gespeicherten Prozedur zurückzugeben, normalerweise einschließlich grundlegender Datentypen und benutzerdefinierter Datentypen. Wenn die gespeicherte Prozedur ausgeführt wird, werden die zurückgegebenen Ergebnisse in den Ausgabeparametern gespeichert. Das Programm kann über das Verbindungsobjekt auf die Ausgabeparameter zugreifen und die zurückgegebenen Daten für nachfolgende Vorgänge verwenden.
2. Erstellen Sie eine gespeicherte Prozedur mit Ausgabeparametern. In der Oracle-Datenbank ist zum Erstellen einer gespeicherten Prozedur mit Ausgabeparametern der Befehl CREATE PROCEDURE erforderlich. Hier ist ein Beispiel:
CREATE OR REPLACE PROCEDURE p_test_out_param( p_in_param NUMBER, p_out_param OUT VARCHAR2 ) AS BEGIN p_out_param := 'Hello World'; dbms_output.put_line('IN Parameter value = ' || p_in_param); dbms_output.put_line('OUT Parameter value = ' || p_out_param); END;
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class CallStoredProcedure { public static void main(String args[]) { Connection conn = null; CallableStatement cstmt = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger"); cstmt = conn.prepareCall("{call p_test_out_param(?, ?)}"); cstmt.setInt(1, 100); cstmt.registerOutParameter(2, java.sql.Types.VARCHAR); cstmt.executeUpdate(); String output = cstmt.getString(2); System.out.println("Output Parameter : " + output); } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { try { if (cstmt != null) cstmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
Das obige ist der detaillierte Inhalt vonLassen Sie uns über die gespeicherte Prozedur mit Oracle-Ausgabeparametern sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!