[英]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.