關於oracle的sqlplus的另外一些小技巧

執行腳本的命令在上一節已經講過,再也不重複。html

 sqlplus user/password@ip:port/servicename @/path/sqltest.sql;

sqltest的內容及註釋:sql

--這個WHENEVER表示出現錯誤以後,再也不繼續執行,還會盡可能回滾
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK
--select 'OK' from duabbl;
--select 'OK' from duiaaal;
--輸出執行的語句
set echo on;
--將執行結果輸出到文件
spool /tmp/spool.txt;
select 'OK' from dual;
--創建一個空的無害的存儲過程
create or replace procedure ADisabledSP(timeStamp number,  
tableName varchar2) is  
begin  
if timeStamp<0 then --該條件永遠沒法成立,且使用了輸入參數timeStamp  
dbms_output.put_line('We are going to operate on table ' || tableName); --使用了輸入參數tableName  
end if;  
end;
--這個/在命令行中執行是必須的,表示執行,否則,只有換行
/  
select 'OK' from dual;
select 'OK' from dzual;
--dual數據庫經常使用於測試目的
select 'OK' from dual;
spool off;
--這個也必須,否則,腳本執行完成以後,會hang在sqlplus命令行中,不退出
exit;

查看存儲過程的幾個SQL,注意有的顯示一行一行的,有的顯示名字,有的顯示內容:數據庫

select name from user_source where type='PROCEDURE'; select text from all_source where name = 'pro_name'; select * from user_procedures; 

  

最後一個小技巧,爲何在的腳本里,會出現一個/右斜槓呢?????oracle

通常在end;(注意有分號)後加反斜槓/,表明是要執行某個存儲過程,若是沒有反斜槓,則表明是普通換行。這種狀況通常用於oracle中的命令窗口。

https://zhidao.baidu.com/question/560015241204373364.html測試

相關文章
相關標籤/搜索