新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用
上次我們介紹了:SQL/PLUS學(xué)習(xí)筆記之編輯緩沖區(qū)中的當(dāng)前行命令,本文我們介紹一下SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用,接下來就讓我們一起來了解一下這部分內(nèi)容。

ECHO參數(shù)的設(shè)置:
SQL> show echo --顯示echo的狀態(tài)
echo OFF --此時echo是OFF狀態(tài)
SQL> set echo on --設(shè)置其為開狀態(tài)
SQL> show echo
echo ON --已經(jīng)打開
此時運行腳本的話,腳本中的每條SQL語句或PL/SQL塊將會顯示在終端,如下運行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 --默認在當(dāng)前路徑下生成outputfile.lst文件
- SQL> select * from t1 where rownum<3;
- ID NAME
- ---------- --------------------
- 1 Testing
- 2 Testing
- SQL> spool off --終止,此時這些內(nèi)容全部被寫入文件outputfile中
- [oracle@localhost ~]$ cat outputfile.lst --查看文件內(nèi)容如下:
- SQL> select * from t1 where rownum<3;
- ID NAME
- ---------- --------------------
- 1 Testing
- 2 Testing
- SQL> spool off
這個功能可以幫助生成一些動態(tài)的批量處理的腳本,比方說刪除用戶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
這樣動態(tài)刪除某些表的SQL語句就生成了。
關(guān)于SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用的知識就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!
網(wǎng)頁題目:SQL/PLUS學(xué)習(xí)筆記之ECHO和SPOOL的使用
分享鏈接:http://www.dlmjj.cn/article/dpssjde.html


咨詢
建站咨詢
