1

EXECUTE IMMEDIATEクエリの実行に使用する PL/SQL ステートメントがあります。ただし、実行中のクエリのテキストを取得する方法すらわかりません。dbms_outputクエリが 255 文字を超えているため使用できません。に渡された文字列を sqlplus にエコーさせる方法はありますEXECUTE IMMEDIATEか?

4

4 に答える 4

3

使用している Oracle のバージョンは何ですか? 255 はDBMS_OUTPUT.PUT_LINE(). 10g より前のデフォルトの行の長さで、1 回の呼び出しで 1048 文字を表示できました。それ以来、32Kです。

または、DBMS_DEBUG をサポートする IDE の使用を検討する必要があります。たとえば、SQL Developer はこれを行いますが、Oracle からは無料です。 詳細をご覧ください

于 2009-11-05T17:00:10.973 に答える
0

一度に N 文字の大きな文字列を出力する方法。必要に応じて変更します。

FOR i IN 0..10 LOOP
  dbms_output.put_line(substr(my_very_long_string,i*100+1,100));
END LOOP;
于 2009-11-05T19:21:03.497 に答える
0

プロファイラーをデータベースにアタッチして (正直なところ、私は SqlServer に対してのみ実行しました)、手順を実行できます。これは、プロファイラーが DB に対して行われたクエリを表示するため、そこで取得して必要なデバッグを行うことができるからです。それが役に立てば幸い..

于 2009-11-05T17:01:39.060 に答える
0

文字列をログ/一時テーブルに挿入して調べることができます。

于 2009-11-06T18:54:26.267 に答える