[英]ORA-00900: invalid SQL statement while exporting an Oracle database from Java
[英]Error ORA-00900 while calling a Oracle Function from Java
我在嘗試從代碼中調用 Oracle function 時收到ORA-00900錯誤,而它在 sqldeveloper 中有效。 我試圖從中調用 Oracle function 的代碼如下。
passwordCriteria = session.doReturningWork(connection -> {
try (CallableStatement function = connection
.prepareCall("{ ? = call test$ui_mob.password_change (?,?,?,?) }")) {
function.setEscapeProcessing(false);
function.registerOutParameter("p_response", Types.VARCHAR);
function.setString("p_username", "TEST_USER");
function.setString("p_companycode", "BSH");
function.setString("p_deviceid", "123456798");
function.setString("p_language", "en");
function.executeQuery();
return function.getString(1);
}
});
}
堆棧跟蹤是
引起:java.sql.SQLSyntaxErrorException: ORA-00900: invalid SQL 語句
根據JavaDoc :
該接口用於執行SQL存儲過程。 JDBC API 提供了存儲過程 SQL 轉義語法,允許以標准方式為所有 RDBMS 調用存儲過程。 這種轉義語法有一種形式包含結果參數,另一種形式不包含。 如果使用,結果參數必須注冊為 OUT 參數。 其他參數可用於輸入,output 或兩者兼而有之。 參數按編號順序引用,第一個參數為 1。
{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
{call <procedure-name>[(<arg1>,<arg2>, ...)]}
看起來{?=
之間不應該有空格,而你有空格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.