JDBC를 사용하여 DBMS_OUTPUT.get_lines 검색
Java 애플리케이션 내에서 Oracle의 dbms_output.get_lines를 활용할 때 JDBC는 별도의 작업 없이 출력을 얻는 수단을 제공합니다. 추가 데이터베이스 개체를 생성합니다. 이 접근 방식에는 일련의 단계가 포함됩니다.
다음은 이 프로세스를 보여주는 샘플 코드 조각입니다.
try (CallableStatement call = c.prepareCall( "declare " + " num integer := 1000;" // Adapt this as needed + "begin " + " dbms_output.enable();" + " dbms_output.put_line('abc');" + " dbms_output.put_line('hello');" + " dbms_output.put_line('so cool');" // This captures the output up until now through a PL/SQL TABLE type. // Oracle 12c+ uses a SQL cursor, while 11g requires an auxiliary SQL TABLE + " dbms_output.get_lines(?, num);" // Disable buffering + " dbms_output.disable();" + "end;" )) { 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(); } }
jOOQ 사용
jOOQ 라이브러리를 사용하는 경우 다음에서 활성화하여 쿼리에 대한 서버 출력을 자동으로 검색할 수 있습니다. 설정 객체:
DSLContext ctx = DSL.using(c, new Settings().withFetchServerOutputSize(10));
쿼리 실행 후 ExecuteContext::serverOutput에서 서버 출력을 사용할 수 있습니다.
DBMS_OUTPUT.GET_LINE에 대한 주의사항
DBMS_OUTPUT.GET_LINE은 행을 개별적으로 검색하는 반면, 벤치마크에서는 이에 비해 상당한 속도 저하가 나타났습니다. PL/SQL에서도 DBMS_OUTPUT.GET_LINES를 사용합니다. 따라서 효율성을 위해 DBMS_OUTPUT.GET_LINES를 활용한 일괄 접근 방식을 권장합니다.
위 내용은 JDBC를 사용하여 Oracle의 DBMS_OUTPUT을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!