1
我試圖通過從java代碼調用過程從oracle數據庫讀取數據。 如果我從sqldeveloper運行程序,我可以看到程序給了我正確的輸出。但是當我嘗試使用java程序運行時,出現錯誤。使用過程從數據庫獲取數據
步驟:
CREATE OR REPLACE PACKAGE BODY VISIONEMPLOYEES AS
PROCEDURE Employees(
p_id IN NUMBER,
p_ref_cursor OUT sys_refcursor)
AS
BEGIN
OPEN p_ref_cursor FOR
SELECT id, name, age FROM emp WHERE id = p_id;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END Employees;
END VISIONEMPLOYEES;
Java代碼:
public static void callOracleStoredProcOUTParameter()
{
Connection conn = null;
Statement stmt = null;
CallableStatement cb = null;
String qry = "{VISIONEMPLOYEES.Employees(?,?)}";
try {
conn = getDbConnection();
cb = conn.prepareCall(qry);
cb.setInt(1, 1);
cb.registerOutParameter(2, OracleTypes.CURSOR);
cb.executeUpdate();
String userName = cb.getString(2);
System.out.println("UserName is : " + userName);
} catch (Exception e) {
System.out.println(e);
}
}
java.sql.SQLSyntaxErrorException:ORA-00900:無效的SQL語句
請告訴我,什麼是錯的書面以上碼。
向我們展示你用來運行程序的代碼和代碼運行時,你所得到的錯誤。 – pczeus