Java で Oracle ストアド プロシージャを呼び出すことができません。次のようにストアド プロシージャをデータベースに追加しました。
String SQL = "CREATE OR REPLACE PROCEDURE LIVERESULTS() " +
"IS " +
"BEGIN" +
" SELECT POOL_ID, POOL_MBR_ID, BSLN_CD, PGE_TYP_NM, SERV_NM, CL_FILE_NM" +
" FROM LBMADM.TPPO_MSTR_MAP " +
" ORDER BY SERV_NM" +
" WHERE PGE_TYP_NM = 'live' ; " +
"END";
stmtLIVE = con.createStatement();
stmtLIVE.executeUpdate(SQL);
そして今、私はそれを次のように呼び出そうとしています:
CallableStatement cs;
try {
cs = con.prepareCall("{call LIVERESULTS() }");
rs = cs.executeQuery();
while (rs.next()) {
.....
ただし、次のエラーが発生します。
java.sql.SQLException: ORA-06550: line 1, column 7:
PLS-00905: object UT9J.GENERATE_SQL_FOR_LIVE is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
どこが間違っているのかよくわかりません。私はそれに関する Oracle のドキュメントを読み、すべてを正しく行ったと思いますが、そうではないと思います。誰かが状況に光を当てることができれば、本当に感謝しています。