![](/img/trans.png)
[英]PL/SQL sotred procedure won't execute in Java, but works in Oracle
[英]Execute a PL/SQL procedure using Java code
我想使用Java代碼執行PL / SQL過程。 到目前為止,我已經嘗試過了:
Statement myStmt = null;
myStmt = conn.createStatement();
myStmt.executeQuery("EXECUTE ProjetIRSTEA.detectionX");
我收到以下錯誤消息:
java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL statement
您必須使用CallableStatement類來執行存儲過程。
請檢查由Oracle發布的此示例,以了解如何使用此類: https : //docs.oracle.com/cd/A84870_01/doc/java.816/a81354/samapp2.htm
嘗試:
myStmt.executeUpdate("BEGIN ProjetIRSTEA.detectionX; END");
您還可以通過CallableStatement接口使用一種方法來調用JDBC標准定義的存儲過程:
CallableStatement myCall = connection.prepareCall("{call ProjetIRSTEA.detectionX()}")
myCall.executeUpdate();
在Oracle上,您可以使用CallableStatement(如上所述),也可以使用Statement或PreparedStatement發出普通的sql查詢(盡管首選前一種方法)。
String sql = " select ProjetIRSTEA.detectionX() from dual";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.execute();
請注意,必須在select語句中引用系統表dual。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.