1

test.sqlスクリプトから出力を取得しようとしているcshellスクリプトでこれを行っていますsqlplus $ORA_UID/$ORA_PSWD @${SQL}test.sql ${DATA}${ext1}..SQLスクリプトで出力をspool &1..にダンプしていますが、スクリプトを実行するとファイルが空白になり、データベースから何も得られません..誰かがこれのどこが悪いのか教えてもらえますか

4

1 に答える 1

1

通常、現在行われているように、ユーザーIDとパスワードをプロセスリストに表示することはお勧めできません。ほとんどの場合、SQLスクリプトが期待どおりの出力を生成しないのは、SQLマーカーの終わりが欠落しているためです。デフォルトでは、SQLの終わりは「;」です。SQLマーカーの終わりを読み取ると、実際にSQLステートメントが開始されます。まず、フィードバックをオンにしてスクリプトを試し、スプールファイルのエラーメッセージを確認します。スプールファイルの場所は大丈夫ですか?

sqlplus /nolog <<eof
connect $ORA_UID/$ORA_PSWD
@${SQL}test.sql ${DATA}${ext1}
eof

この構造により、プロセスリストにクレデンシャルが表示されなくなります。

sqlscriptでは

select * from dual;

また

select * from dual
/

ただし、すべてのSQLステートメントにはSQLマーカーの終わりが必要です。

于 2011-03-24T20:27:09.737 に答える