1

stored procedures現在、いくつかをテストしJAVAているoracle dbので、すべてのempエンティティを表示しようとしました。

だから私の質問は、Javaストアドプロシージャを介してテーブル全体を表示するにはどうすればよいですか?

これは私が試したものです:

create or replace and compile java source named getEMP
as
import java.sql.*;
import java.util.*;
public class Example{
    public static void showEmp() throws SQLException, ClassNotFoundException {
            ResultSet rs;
            Properties p = new Properties();
            p.put("user", "user");
            p.put("password","password");
            String strCon = "Connection String";

            Class.forName("oracle.jdbc.OracleDriver"); 
            Connection con = DriverManager.getConnection(strCon, p);

            Statement stmt;

            con = DriverManager.getConnection(strCon, p);
            String query =
                    "select empno, ename, deptno, sal, comm " +
                    "from emp";

            stmt = con.createStatement();
            rs = stmt.executeQuery(query);

        //Display the ResultSet
    }
}

この方法での私の問題は、を使用できないことSystem.out.println("");です。この後は何も表示されません。

create or replace procedure showEmp
as language java name 'Example.showEmp()';

exec showEmp;

前もって感謝します!

4

1 に答える 1

0

サーバー出力が有効になっていることを確認し、Java出力をサーバーにリダイレクトする必要があります。SQL * PLusでは、次の2つのステートメントでこれを実現できます。

SQL> set serveroutput on;
SQL> call dbms_java.set_output(20000);

数値20000は、と同じ最大バッファサイズDBMS_OUTPUTです。

この後、実行すると、呼び出しの結果が印刷されているexec showEmp;のを確認できるはずです。System.out.println()

于 2012-02-05T10:29:43.813 に答える