집 >데이터 베이스 >MySQL 튜토리얼 >데이터베이스 개체를 생성하지 않고 JDBC에서 Oracle의 DBMS_OUTPUT.GET_LINES를 가져오는 방법은 무엇입니까?
데이터베이스 객체를 생성하지 않고 JDBC에서 DBMS_OUTPUT.GET_LINES 가져오기
Oracle에서 DBMS_OUTPUT.GET_LINES는 저장 프로시저 또는 저장 프로시저에서 출력을 검색하는 메커니즘을 제공합니다. 다른 데이터베이스 작업. 이 프로세스를 용이하게 하기 위해 데이터베이스에 추가 개체를 만드는 것이 가능하지만 이러한 오버헤드를 피하는 것이 바람직할 수 있습니다. 이 기사에서는 외부 데이터베이스 엔터티에 의존하지 않고 JDBC를 사용하여 Java에서 DBMS_OUTPUT.GET_LINES 출력을 얻는 방법을 살펴봅니다.
출력 버퍼링 활성화
첫 번째 단계는 출력 버퍼링을 활성화하는 것입니다. DBMS_OUTPUT.ENABLE()을 사용합니다. 이를 통해 데이터베이스 작업이 실행되는 동안 서버 출력을 캡처할 수 있습니다.
출력 캡처
출력을 캡처하려면 DBMS_OUTPUT.GET_LINES()가 사용됩니다. 이 프로시저는 지정된 수의 출력 라인을 SQL 커서로 검색합니다. 결과를 받으려면 출력 매개변수를 "DBMSOUTPUT_LINESARRAY" 유형의 배열로 등록하는 것이 중요합니다.
출력 검색
DBMSOUTPUT_LINESARRAY에는 출력을 나타내는 개체 배열이 포함되어 있습니다. 윤곽. 실제 출력을 얻으려면 JDBC의 getArray() 메서드를 사용하여 배열을 검색합니다.
예제 코드
try (CallableStatement call = c.prepareCall( //这段代码用于设置enable output buffering,在DBMS_OUTPUT.PUT_LINE()与DBMS_OUTPUT.GET_LINES()之间执行 "declare num integer := 1000; begin dbms_output.enable(); ..." )) { // ... remaining code to capture and print output }
jOOQ 통합
SQL 작업을 위한 Java 라이브러리인 jOOQ는 SQL 작업을 자동으로 수행하는 편리한 방법을 제공합니다. 서버 실행에서 출력을 가져옵니다. 설정 개체에서 withFetchServerOutputSize()를 설정하면 jOOQ는 쿼리 실행 시 서버 출력을 검색합니다.
권장사항: DBMS_OUTPUT.GET_LINE을 통한 DBMS_OUTPUT.GET_LINES
DBMS_OUTPUT.GET_LINE 동안 한 번에 한 줄씩 반환하므로 다음을 수행하는 것이 좋습니다. 대신 DBMS_OUTPUT.GET_LINES를 사용하세요. 벤치마크에 따르면 JDBC에서 호출할 때 DBMS_OUTPUT.GET_LINES가 훨씬 더 빠른 것으로 나타났습니다.
위 내용은 데이터베이스 개체를 생성하지 않고 JDBC에서 Oracle의 DBMS_OUTPUT.GET_LINES를 가져오는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!