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

2021-09-23 00:26:10 字數 1578 閱讀 5225

執行指令碼的命令在上一節已經講過,不再重複。

sqlplus user/password@ip:port/servicename @/path/sqltest.sql;
sqltest的內容及注釋:

--

這個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

orreplace

procedure adisabledsp(timestamp

number

, tablename

varchar2) is

begin

iftimestamp

<

0then

--該條件永遠無法成立,且使用了輸入引數timestamp

dbms_output.put_line('

we are going to operate on table

'|| tablename); --

使用了輸入引數tablename

endif

; 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;

最後乙個小技巧,為什麼在的指令碼裡,會出現乙個/右斜槓呢?????

一般在end;(注意有分號)後加反斜槓/,代表是要執行某個儲存過程,如果沒有反斜槓,則代表是普通換行。這種情況一般用於oracle中的命令視窗。

關於oracle的啟動

有這麼一道題,是關於在例項啟動的時候,哪些檔案在某個階段是不是可以改動的,我覺得這個題是乙個很基礎的題,對於理解oracle有很大的幫助。於是我就查了一下相關資料,分享一下,適合初學者看。1 shutdown nomount 讀取引數檔案,根據引數檔案的記錄,配置sga,啟動後台程序。這個階段因為只...

關於oracle的啟動

有這麼一道題,是關於在例項啟動的時候,哪些檔案在某個階段是不是可以改動的,我覺得這個題是乙個很基礎的題,對於理解oracle有很大的幫助。於是我就查了一下相關資料,分享一下,適合初學者看。1 shutdown nomount 讀取引數檔案,根據引數檔案的記錄,配置sga,啟動後台程序。這個階段因為只...

關於Oracle分頁

connected to oracle9i enterprise edition release 9.2.0.6.0 connected as dev sql sql set timing on sql create table test table as 2 select rownum x 3 f...