test.sqlスクリプトから出力を取得しようとしているcshellスクリプトでこれを行っていますsqlplus $ORA_UID/$ORA_PSWD @${SQL}test.sql ${DATA}${ext1}
..SQLスクリプトで出力をspool &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 に答える