1

私のクエリは基本的に、bash から複数の oracle スクリプトを実行しようとしているときに、スクリプト間にコメントを挿入する方法です。デュアルから文字列を選択して回避策を試しました。しかし、出力のフォーマットはあまり良くありません。

誰でも私にもっと良い方法を提案してもらえますか。

マイコード

#!/bin/bash
#Run Script
    echo "-------------------------------"
    echo "***Running Script1***"
    echo "-------------------------------"
sqlplus -S UID/PSW@DB << EOF
whenever sqlerror exit sql.sqlcode;
set echo off 
set heading off
@/my/path/Script1
Select '--------------' from dual;
select '***Running Script1***' from dual;
Select '--------------' from dual;
@/my/path/Script2
exit;
EOF

出力

-------------------------------
***Running Script1***
-------------------------------
SP2-0310: unable to open file "my/path/Script1.sql"

--------------


***Running Script2***    

--------------

SP2-0310: unable to open file "my/path/Script2.sql"

期待される出力

-------------------------------
***Running Script1***
-------------------------------
SP2-0310: unable to open file "my/path/Script1.sql"

--------------
***Running Script2***    
--------------    
SP2-0310: unable to open file "my/path/Script2.sql"
4

3 に答える 3

3

PROMPTSQL*Plusのコマンドを使用してみてください。

$ cat tmp.sh
#!/bin/bash

sqlplus -S UID/PSW@DB << EOF
whenever sqlerror exit sql.sqlcode
set echo off
set heading off

prompt =======================
prompt *** Running Script1 ***
prompt =======================
@/my/path/Script1

prompt =======================
prompt *** Running Script2 ***
prompt =======================
@/my/path/Script2

exit
EOF

出力:

$ ./tmp.sh
=======================
*** Running Script1 ***
=======================
SP2-0310: unable to open file "/my/path/Script1.sql"
=======================
*** Running Script2 ***
=======================
SP2-0310: unable to open file "/my/path/Script2.sql"
于 2013-06-27T06:28:40.910 に答える
2

過去に、私は使用しましたdbms_output.put_line

dbms_output.put_line('starting process at: '||to_char(sysdate,'HH24:MI:SS'));

これには、最初の「set」ステートメントを使用して、最初に次の行が必要です。

set serveroutput on size 1000000;

そして、宣言/開始/終了ブロックで何かをしているなら、これが欲しいかもしれません:

dbms_output.enable;

出力が変わる可能性があります。

于 2013-06-27T06:15:27.447 に答える
2

どうですか

Select '--------------' || chr(10) || '***Running Script1***' || chr(10) || '--------------' from dual;
于 2013-06-27T06:14:54.247 に答える