設置sqlplus不顯示除查詢結果外的信息


背景:客戶提出一個需求,寫SQL腳本的時候,內容是拼接的,如何將這個拼接SQL執行的結果取出來調用執行呢?
我想到的方案是先把結果取出來,存為一個中間文件,再調用該文件即可。
知識點:如何將sqlplus結果中的無關信息都去掉?
可以使用sqlplus -s進入調用拼接SQL腳本,腳本中配合使用set設定相關屬性即可實現。下面舉一個簡單的示例來說明:

1.拼接SQL腳本

我這里拿拼接一個殺掉業務用戶JINGYU的所有會話舉例:
[oracle@db10 ~]$ cat test.sql 
--format
set heading off
set echo off
set flush off
set feedback off
set pagesize 9999
set linesize 9999
set long 9999

--SQL
--kill_all_session
select 'alter system disconnect session '''||sid||','||serial#||''''||' immediate;' from v$session where username = 'JINGYU';

--exit
exit

2.生成中間文件

調用上面的拼接SQL腳本,生成中間文件exec.sql:
[oracle@db10 ~]$ sqlplus -s / as sysdba @test.sql > exec.sql

此時查看生成的sql文件,可以確認沒有其他內容,滿足直接后期調用執行的要求:

[oracle@db10 ~]$ cat exec.sql

alter system disconnect session '148,48' immediate;
alter system disconnect session '159,83' immediate;

3.調用中間文件

我這里直接執行調用中間文件驗證,根據你的需求也可以將其封裝到另一個腳本中。
[oracle@db10 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Tue Jul 17 12:01:12 2018

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@orcl> @exec

System altered.


System altered.

SYS@orcl> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM