2012-08-27 15 views
0

我試圖跟蹤與下面的查詢數據庫會話期間重做產生量:查詢工作在SQL * Plus但在JDBC與ORA-00911的異常失敗

SELECT a.name, b.VALUE 
    FROM v$statname a, v$mystat b 
    WHERE a.statistic# = b.statistic# AND a.name = 'redo size'; 

這個查詢直接在SQL * Plus和Toad中工作,但是我使用JDBC獲得了ORA-00911異常,並且我已將其縮小到「統計信息#」列名。

我該如何解決這個問題?

+0

一個未加引號的Oracle對象(表,列等)的有效字符是'a-z','0-9','#','_'和'$',並且必須以'a-z'開頭。雖然你不願意使用'#'和'$',但我強烈建議你不要使用帶引號的名字。機會是'#'不是a_horse_with_no_name所說的問題。 – Ben

回答

3

場任何列名statistic#是沒有問題的。

我敢打賭,你也從Java程序中發送終止;

但是,當通過JDBC執行SQL語句(至少不在Oracle和其他DBMS中)時,您可能不包括;

從你的SQL字符串中刪除;,它應該沒問題。

+0

我的部分出現菜鳥錯誤。你說得對,我在那裏有分號。刪除它解決了問題。謝謝。 – ebcb

0

把它放在雙引號 - 這應該讓你撥打甲骨文

0

打開JDBC日誌記錄,查看您的驅動程序文檔以瞭解如何執行此操作。在JDBC日誌中,您可以看到在DB中準備並執行的實際語句。這消除了一個可能的錯誤原因。

相關問題