使用 JDBC 提取 DBMS_OUTPUT 行
dbms_output.get_lines 程序允許使用 JDBC 從 Java 應用程式中檢索輸出。若要在不建立資料庫物件的情況下實現此目的,請考慮以下步驟:
程式碼範例:
try (CallableStatement call = c.prepareCall( "declare \n" + " num integer := 1000;\n" // Adjust value as needed + "begin \n" + " dbms_output.enable();\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 = call.getArray(1); System.out.println(Arrays.asList((Object[]) array.getArray())); }
輸出:
[abc, hello, so cool, null]
輸出:
請記住,停用輸出緩衝區會影響整個連線。因此,可以跨多個 JDBC 語句捕獲輸出。
注意: 此方法預設檢索最多 1000 行。考慮在 PL/SQL 中循環或輪詢資料庫以取得其他行。
使用jOOQ:DSLContext ctx = DSL.using(c, new Settings().withFetchServerOutputSize(10));
以上是如何使用 JDBC 從 Oracle 程序中檢索 DBMS_OUTPUT 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!