簡體   English   中英

從bash運行Oracle腳本

[英]Running Oracle script from bash

我的查詢基本上是當我嘗試從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"

嘗試使用SQL * Plus的PROMPT命令:

$ 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"

怎么樣

Select '--------------' || chr(10) || '***Running Script1***' || chr(10) || '--------------' from dual;

過去,我使用過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;

這可能會改變您的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM