>  기사  >  데이터 베이스  >  Oracle 출력 매개변수 저장 프로시저에 대해 이야기해 보겠습니다.

Oracle 출력 매개변수 저장 프로시저에 대해 이야기해 보겠습니다.

PHPz
PHPz원래의
2023-04-04 09:11:361491검색

Oracle 데이터베이스에서 저장 프로시저는 필요할 때 저장 프로시저를 호출하여 정의된 작업을 수행할 수 있는 미리 컴파일된 코드 블록입니다. 저장 프로시저에서는 SQL 문을 실행하는 것 외에도 입력, 출력 또는 둘 다에 대한 매개 변수를 정의할 수도 있습니다. 이 문서에서는 주로 저장 프로시저의 출력 매개 변수와 해당 응용 프로그램을 소개합니다.

1. 출력 매개변수의 개념

저장 프로시저에서 출력 매개변수는 일반적으로 기본 데이터 유형과 사용자 정의 데이터 유형을 포함하여 저장 프로시저의 결과를 반환하는 데 사용되는 변수입니다. 저장 프로시저가 실행되면 반환 결과가 출력 매개 변수에 저장됩니다. 프로그램은 연결 개체를 통해 출력 매개 변수에 액세스하고 반환된 데이터를 후속 작업에 사용할 수 있습니다.

2. 출력 매개변수를 사용하여 저장 프로시저 생성

Oracle 데이터베이스에서 출력 매개변수를 사용하여 저장 프로시저를 생성하려면 CREATE PROCEDURE 명령을 사용해야 합니다.

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;

위 예에서 p_in_param은 입력입니다. 매개변수 p_out_param은 출력 매개변수이고 유형은 VARCHAR2입니다. 이 저장 프로시저는 SQL 문을 실행하지 않으며 단지 p_out_param에 대한 문자열을 출력합니다. 저장 프로시저가 끝나면 p_out_param 값을 외부 호출 프로그램에서 가져와 처리할 수 있습니다.

3. 외부 프로그램은 저장 프로시저의 출력 매개변수에 액세스합니다.

Oracle 데이터베이스에서 외부 프로그램은 연결 개체를 사용하여 저장 프로시저의 출력 매개변수에 액세스할 수 있습니다. 다음은 Java 프로그램의 예입니다.

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();
         }
      }
   }
}

이 프로그램은 Java 언어로 작성되었으며 JDBC 드라이버를 통해 Oracle 데이터베이스에 연결하고 저장 프로시저 p_test_out_param을 실행합니다. RegisterOutParameter 메소드를 통해 출력 매개변수의 타입이 VARCHAR임을 프로그램에 알려주고, 실행 후 getString 메소드를 통해 출력 매개변수의 값을 얻어온다.

요약:

Oracle 데이터베이스에서 저장 프로시저는 비즈니스 논리를 처리하는 중요한 수단입니다. 출력 매개변수를 사용하면 프로그램이 저장 프로시저에서 반환한 결과를 쉽게 얻을 수 있습니다. 다음 세 부분을 통해 Oracle 데이터베이스는 거의 모든 주류 프로그래밍 언어 연결 API를 지원하므로 프로그래머는 데이터베이스 작업을 수행하는 데 능숙한 프로그래밍 언어를 선택할 수 있음을 알 수 있습니다. 동시에 Oracle 데이터베이스는 복잡한 비즈니스 환경에서 비즈니스 로직의 유지 관리성과 성능을 향상시킬 수 있는 강력한 저장 프로시저 기능을 제공합니다.

위 내용은 Oracle 출력 매개변수 저장 프로시저에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.