[英]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.