SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用
作者:taowei20061122
如果想在終端將每執(zhí)行的一條SQL語(yǔ)句都打印出來(lái)需要設(shè)置SQL/PLUS的ECHO參數(shù),那么ECHO參數(shù)該如何設(shè)置呢?本文我們就介紹這部分內(nèi)容,希望能夠?qū)δ兴鶐椭?/div>
上次我們介紹了:SQL/PLUS學(xué)習(xí)筆記之編輯緩沖區(qū)中的當(dāng)前行命令,本文我們介紹一下SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用,接下來(lái)就讓我們一起來(lái)了解一下這部分內(nèi)容。
ECHO參數(shù)的設(shè)置:
SQL> show echo --顯示echo的狀態(tài)
echo OFF --此時(shí)echo是OFF狀態(tài)
SQL> set echo on --設(shè)置其為開(kāi)狀態(tài)
SQL> show echo
echo ON --已經(jīng)打開(kāi)
此時(shí)運(yùn)行腳本的話,腳本中的每條SQL語(yǔ)句或PL/SQL塊將會(huì)顯示在終端,如下運(yùn)行test腳本:
- SQL> @test --其下面均為終端顯示的內(nèi)容
- SQL> select *from t1 where rownum<2;
- ID NAME
- ---------- --------------------
- 1 Testing
- SQL>
- SQL> truncate table t1;
- Table truncated.
- SQL>
- SQL> begin
- 2
- 3 for i in 1 .. 1000 loop
- 4
- 5 insert into t1 values(i,'Testing');
- 6 end loop;
- 7 commit;
- 8
- 9 end;
- 10 /
- PL/SQL procedure successfully completed.
- SQL>
- SQL> select count(*)from t1;
- COUNT(*)
- ----------
- 1000
使用SPOOL保存查詢的結(jié)果集
- SQL> spool outputfile --默認(rèn)在當(dāng)前路徑下生成outputfile.lst文件
- SQL> select * from t1 where rownum<3;
- ID NAME
- ---------- --------------------
- 1 Testing
- 2 Testing
- SQL> spool off --終止,此時(shí)這些內(nèi)容全部被寫(xiě)入文件outputfile中
- [oracle@localhost ~]$ cat outputfile.lst --查看文件內(nèi)容如下:
- SQL> select * from t1 where rownum<3;
- ID NAME
- ---------- --------------------
- 1 Testing
- 2 Testing
- SQL> spool off
這個(gè)功能可以幫助生成一些動(dòng)態(tài)的批量處理的腳本,比方說(shuō)刪除用戶emcd下的滿足某些條件的表:
- SQL> show user
- USER is "EMCD"
- SQL> spool droptable.sql
- SQL> select 'drop table'||objec_name from user_objects where object_type='TABLE';
- select 'drop table'||objec_name from user_objects where object_type='TABLE'
- *
- ERROR at line 1:
- ORA-00904: "OBJEC_NAME": invalid identifier
- SQL> l
- 1* select 'drop table'||objec_name from user_objects where object_type='TABLE'
- SQL> c/objec_/object_
- 1* select 'drop table'||object_name from user_objects where object_type='TABLE'
- SQL> /
- 'DROPTABLE'||OBJECT_NAME
- --------------------------------------------------------------------------------
- drop tableT1
- drop tableBIN$qokoVJ6g4HHgQAB/AQAzMg==$0
- drop tableTOAD_PLAN_TABLE
- SQL> l
- 1* select 'drop table'||object_name from user_objects where object_type='TABLE'
- SQL> c/'drop table'/'drop table '
- 1* select 'drop table '||object_name from user_objects where object_type='TABLE'
- SQL> /
- 'DROPTABLE'||OBJECT_NAME
- --------------------------------------------------------------------------------
- drop table T1
- drop table BIN$qokoVJ6g4HHgQAB/AQAzMg==$0
- drop table TOAD_PLAN_TABLE
- SQL> spool off --結(jié)束輸入
- SQL> !
- [oracle@localhost ~]$ cat droptable.sql --查看輸出內(nèi)容,如下所示:
- SQL> select 'drop table'||objec_name from user_objects where object_type='TABLE';
- select 'drop table'||objec_name from user_objects where object_type='TABLE'
- *
- ERROR at line 1:
- ORA-00904: "OBJEC_NAME": invalid identifier
- SQL> l
- 1* select 'drop table'||objec_name from user_objects where object_type='TABLE'
- SQL> c/objec_/object_
- 1* select 'drop table'||object_name from user_objects where object_type='TABLE'
- SQL> /
- 'DROPTABLE'||OBJECT_NAME
- --------------------------------------------------------------------------------
- drop tableT1
- drop tableBIN$qokoVJ6g4HHgQAB/AQAzMg==$0
- drop tableTOAD_PLAN_TABLE
- SQL> l
- 1* select 'drop table'||object_name from user_objects where object_type='TABLE'
- SQL> c/'drop table'/'drop table '
- 1* select 'drop table '||object_name from user_objects where object_type='TABLE'
- SQL> /
- 'DROPTABLE'||OBJECT_NAME
- --------------------------------------------------------------------------------
- drop table T1
- drop table BIN$qokoVJ6g4HHgQAB/AQAzMg==$0
- drop table TOAD_PLAN_TABLE
- SQL> spool off
這樣動(dòng)態(tài)刪除某些表的SQL語(yǔ)句就生成了。
關(guān)于SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用的知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】
- SQL Server數(shù)據(jù)庫(kù)遠(yuǎn)程查詢并批量導(dǎo)入數(shù)據(jù)
- 存儲(chǔ)過(guò)程:sp_MSforeachtable/sp_MSforeachdb
- SQL Server數(shù)據(jù)庫(kù)獲取所有表和數(shù)據(jù)的批量操作
- 關(guān)于使用數(shù)據(jù)庫(kù)登錄名和數(shù)據(jù)庫(kù)用戶名的一些心得
- SQL Server在存儲(chǔ)過(guò)程中編寫(xiě)事務(wù)處理代碼的三種方法
責(zé)任編輯:趙鵬
來(lái)源:
CSDN博客


相關(guān)推薦




