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

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

<h1 id="1">1.拼接SQL腳本</h1> 我這裏拿拼接一個殺掉業務用戶JINGYU的全部會話舉例:session

[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

<h1 id="2">2.生成中間文件</h1> 調用上面的拼接SQL腳本,生成中間文件exec.sql:oracle

[oracle@db10 ~]$ sqlplus -s / as sysdba @test.sql > exec.sql

此時查看生成的sql文件,能夠確認沒有其餘內容,知足直接後期調用執行的要求:code

[oracle@db10 ~]$ cat exec.sql

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

<h1 id="3">3.調用中間文件</h1> 我這裏直接執行調用中間文件驗證,根據你的需求也能夠將其封裝到另外一個腳本中。orm

[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>
相關文章
相關標籤/搜索