> 데이터 베이스 > MySQL 튜토리얼 > JDBC를 사용하여 Oracle에서 DBMS_OUTPUT을 검색하는 방법은 무엇입니까?

JDBC를 사용하여 Oracle에서 DBMS_OUTPUT을 검색하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-02 16:59:40
원래의
406명이 탐색했습니다.

How to Retrieve DBMS_OUTPUT from Oracle Using JDBC?

JDBC를 사용하여 Oracle의 DBMS_OUTPUT.GET_LINES에서 출력 검색

JDBC는 생성하지 않고 Oracle의 dbms_output.get_lines 프로시저에 의해 생성된 출력에 액세스할 수 있는 수단을 제공합니다. 데이터베이스의 추가 개체. 이를 달성하는 방법은 다음과 같습니다.

  1. 서버 출력 버퍼링 활성화: 출력에 액세스하기 전에 현재 연결에서 버퍼링을 활성화하여 서버 출력을 캡처합니다.

    dbms_output.enable();
    로그인 후 복사
  2. PL/SQL에 출력 저장 테이블: 서버 출력을 캡처하려면 PL/SQL에서 테이블을 생성하여 출력을 저장합니다.

    create type DBMSOUTPUT_LINESARRAY as table of varchar2(255);
    로그인 후 복사
  3. DBMS_OUTPUT.GET_LINES 호출: 사용 dbms_output.get_lines를 호출하고 PL/SQL 테이블을 out으로 전달하는 CallableStatement 매개변수:

    CallableStatement call = c.prepareCall(
     "declare \n"
      + "  num integer := 1000;\n" // Adjust this value as needed
      + "begin \n"
    
      + "  dbms_output.get_lines(?, num);\n"
    
      + "  dbms_output.disable();\n"
      + "end;\n"
    );
    call.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
    로그인 후 복사
  4. 서버 출력 버퍼링 비활성화: 출력을 검색한 후 버퍼링을 비활성화하여 잠재적인 버퍼 오버플로를 방지합니다.

    dbms_output.disable();
    로그인 후 복사
  5. 출력 액세스: 출력은 out에서 사용할 수 있습니다. 매개변수. JDBC API를 사용하여 테이블 요소에 액세스할 수 있습니다.
  6. 예제 코드: 다음은 프로세스를 보여주는 코드 조각입니다.

    try (CallableStatement call = c.prepareCall(
     "declare \n"
      + "  num integer := 1000;\n" 
      + "begin \n"
    
      + "  dbms_output.put_line('abc');\n"
      + "  dbms_output.put_line('hello');\n"
      + "  dbms_output.put_line('so cool');\n"
    
      + "  dbms_output.get_lines(?, num);\n"
    
      + "  dbms_output.disable();\n"
      + "end;\n"
    )) {
     call.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
     call.execute();
    
     Array array = null;
     try {
         array = call.getArray(1);
         System.out.println(Arrays.asList((Object[]) array.getArray()));
     }
     finally {
         if (array != null)
             array.free();
     }
    }
    로그인 후 복사

이 접근 방식은 Oracle 12c 이상에서 작동합니다. Oracle 11g에서는 보조 SQL TABLE 유형을 사용해야 할 수도 있습니다.

위 내용은 JDBC를 사용하여 Oracle에서 DBMS_OUTPUT을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿