簡體   English   中英

SQLSyntaxErrorException:ORA-00900:使用Java的無效SQL語句

[英]SQLSyntaxErrorException: ORA-00900: invalid SQL statement using Java

我需要通過Java EXEC DBMS_STREAMS_ADM.SET_TAG(tag => HEXTORAW('17'));使用以下EXEC DBMS_STREAMS_ADM.SET_TAG(tag => HEXTORAW('17')); 使用一個簡單的數據庫客戶端。 以及其他常用的選擇/刪除查詢,但抱怨無效的SQL語句。

我試着刪除exec作為PL / SQL的代碼,並用{}調用它,但是仍然遇到相同的錯誤。

EXEC是SQL * Plus(Oracle的本機SQL客戶端)語法,您不能在這里使用它。 調用存儲過程的JDBC語法是通過CALL指令實現的。 您可以在調用中省略參數名稱( tag => HEXTORAW('17') )。 例如:

try (CallableStatement cs 
        = myConnection.prepareCall("{ call DBMS_STREAMS_ADM.SET_TAG(HEXTORAW(?)) }")) {

    cs.setString(1, "17");        
    cs.execute();
}

目前尚不清楚您當前正在使用哪個DBClient (請告訴我們),但是以下方法也可以工作:

DBClient.execute("{ call DBMS_STREAMS_ADM.set_tag(HEXTORAW('17')) }");

或然后

DBClient.execute("begin DBMS_STREAMS_ADM.SET_TAG(HEXTORAW('17')); end;");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM