0

次のクエリを使用して、データベース セッション中に生成される REDO の量を追跡しようとしています。

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 例外が発生し、"statistic#" 列名に絞り込みました。

どうすればこれを回避できますか?

4

3 に答える 3

3

列名statistic#は問題ではありません。

私の賭けは;、Java プログラム内からも終了を送信することです。

ただし、JDBC を介して SQL ステートメントを実行する場合は、を含めることはできません;(少なくとも Oracle やその他の DBMS ではそうではありません)。

;SQL 文字列から を削除すると問題ありません。

于 2012-08-27T18:45:13.327 に答える
0

二重引用符で囲みます-これにより、Oracleでフィールドを何でも呼び出すことができます

于 2012-08-27T17:53:17.400 に答える
0

JDBC ロギングをオンにします。これを行う方法については、ドライバーのドキュメントを確認してください。JDBC ログには、DB で準備および実行された実際のステートメントが表示されます。これにより、考えられるエラーの原因の 1 つが排除されます。

于 2012-08-27T18:57:04.077 に答える