簡體   English   中英

Java JDBC調用Oracle 10函數“無效標識符”

[英]Java JDBC call to Oracle 10 function “invalid identifier”

我遇到了一個以前從未遇到過的問題:數據庫中有一個存儲函數:CC_PROC,它需要兩個日期條目並返回一個表。 換句話說,要鍵入它,請鍵入:

SELECT * FROM (TABLE( CC_PROC( DATE '2012-01-01', DATE '2012-01-15')));

這似乎在SQLPlus和NetBeans中完美地工作,並且上面的代碼行顯然已經使用了一段時間。

無論如何,當使用准備好的語句從Java調用它時,我得到:“ CC_PROC”:executeQuery調用上的無效標識符。

這是與:

PreparedStatement preparedStatement = 
     connection.prepareStatement("SELECT * FROM (TABLE ( CC_PROC( ? , ? )))");
preparedStatement.setDate(1,firstDate);
preparedStatement.setDate(2,secondDate);
resultSet = preparedStatement.executeQuery();

我覺得這也許很明顯,而我直接使用JDBC而不是Hibernate的有限經驗使我感到困惑。 我不想在Java業務邏輯中重新編碼CC_PROC的內容。 有任何想法嗎?

謝謝!

啊哈,找到答案了:

oracle用戶是SALESOWN,因此解決方法是:

PreparedStatement preparedStatement = connection.prepareStatement(
        "SELECT * FROM (TABLE ( SALESOWN.CC_PROC( ? , ? )))");

讓人驚訝。 我不想承認花費很多時間來解決這個問題。

顯然,SQLPlus和NetBeans確實嘗試提供一些幫助。

感謝您的幫助!

暫無
暫無

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

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