[20211108]sqlplus管道過濾.txt
[20211108]sqlplus管道過濾.txt
--//我的同事基本不使用sqlplus,我自己開始學習oracle時,也是很不習慣使用,有時候某列超長,很給使用column修改。
--//還給設定pagesize,linesize大小,當然這些還給面對螢幕顯示混亂的情況,使用上可以使用管道以及過濾來達到好的顯示效果。
--//BTW,我現在是很少用這種方式,一般超長顯示我會使用prxx.sql指令碼(從tanel poder的pr.sql)修改而來。
--//我一般在linux下使用我會啟動tmux下使用,tmux下可以prefix-key ,[ ,? 來查詢特定字串,這樣便於我查詢需要的資訊。
--//透過簡單的例子介紹sqlplus下使用管道以及過濾。
1.環境:
SCOTT@book> @ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
--//建立管道檔案。
$ mkfifo /tmp/oop.pipe
$ ls -l /tmp/oop.pipe
prw-r--r-- 1 oracle oinstall 0 2021-11-08 15:33:27 /tmp/oop.pipe
2.測試1:
--//開啟兩個shell視窗:
--//window 1:
$ echo "select sysdate from dual ;" > /tmp/oop.pipe
--//注意加引號。
--//window 2,啟動sqlplus:
SCOTT@book> @ /tmp/oop.pipe
SYSDATE
-------------------
2021-11-08 15:35:31
--//window 1:
$ echo "@dpc '' ''"> /tmp/oop.pipe
--//window 2:
SCOTT@book> @ /tmp/oop.pipe
--//顯示執行計劃,輸出略。
--//window 1:
$ seq 10 10 40 | xargs -IQ echo "select * from dept where deptno=Q;" > /tmp/oop.pipe
--//window 2:
SCOTT@book> set echo on
SCOTT@book> @ /tmp/oop.pipe
SCOTT@book> select * from dept where deptno=10;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
SCOTT@book> select * from dept where deptno=20;
DEPTNO DNAME LOC
---------- -------------- -------------
20 RESEARCH DALLAS
SCOTT@book> select * from dept where deptno=30;
DEPTNO DNAME LOC
---------- -------------- -------------
30 SALES CHICAGO
SCOTT@book> select * from dept where deptno=40;
DEPTNO DNAME LOC
---------- -------------- -------------
40 OPERATIONS BOSTON
--//設定echo on,可以顯示執行的命令。
3.測試2:
--//實際上這個我以前都講過:
--//http://blog.itpub.net/267265/viewspace-2285749/=>[20181219]script使用小技巧.txt
--//http://blog.itpub.net/267265/viewspace-2375095/=>[20190108]rlwrap sqlplus tee相關問題.txt
--//http://blog.itpub.net/267265/viewspace-2375436/=>[20190110]rlwrap sqlplus tee相關問題3.txt
SCOTT@book> set describe DEPTH 2 LINENUM ON INDENT ON
SCOTT@book> set colsep |
--//目的就是desc前面輸出有行號,可以標識那個欄位顯示位置。
--//建立一個指令碼:
$ cat prp.sql
spool /tmp/oop.pipe
@ prxx
spool off
--//window 1:
$ tail -n 2000 -f /tmp/oop.pipe
--//注意先執行以上這步,不然下面spool /tmp/oop.pipe 時掛住。
--//window 2:
SCOTT@book> select * from v$database;
SCOTT@book> @ prp
--//window 1:
--//按ctrl+c中斷,然後打入如下,然後在windows 2執行 @ prp就ok了。
$ tail -n 2000 -f /tmp/oop.pipe | grep -n SUPP
33:SUPPLEMENTAL_LOG_DATA_MIN : NO
34:SUPPLEMENTAL_LOG_DATA_PK : NO
35:SUPPLEMENTAL_LOG_DATA_UI : NO
43:SUPPLEMENTAL_LOG_DATA_FK : NO
44:SUPPLEMENTAL_LOG_DATA_ALL : NO
54:SUPPLEMENTAL_LOG_DATA_PL : NO
--//減去3對應欄位序號。
--//window 2:
SCOTT@book> set colsep |
SCOTT@book> set linesize 20000
SCOTT@book> @ desc v$database
...
11 CONTROLFILE_TYPE VARCHAR2(7)
12 CONTROLFILE_CREATED DATE
13 CONTROLFILE_SEQUENCE# NUMBER
14 CONTROLFILE_CHANGE# NUMBER
15 CONTROLFILE_TIME DATE
....
--//window 1:
--//修改如下:
$ tail -n 2000 -f /tmp/oop.pipe | cut -d"|" -f11,12,13,14,15
SCOTT@book> select * from v$database;
CONTROL|CONTROLFILE_CREATED|CONTROLFILE_SEQUENCE#|CONTROLFILE_CHANGE#|CONTROLFILE_TIME
-------|-------------------|---------------------|-------------------|-------------------
CURRENT|2015-11-24 09:11:10| 54493| 13382769951|2021-11-08 16:22:44
--//window 2:
spool /tmp/oop.pipe
select * from v$database;
spool off
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2841205/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20191104]sqlplus 管道檔案 過濾.txtSQL
- [20211108]sqlplus 本地登入緩慢.txtSQL
- [20211108]sqlplus資料寬度顯示設定.txtSQL
- sqlplus與空行.txtSQL
- 過濾Servlet--過濾器Servlet過濾器
- 過濾
- filter過濾Filter
- 過濾器過濾器
- Django(67)drf搜尋過濾和排序過濾Django排序
- [20190329]grep與管道檔案.txt
- 4、過濾器的使用及自定義過濾器過濾器
- [20211108]索引分裂塊清除日誌增加(唯一索引)2.txt索引
- [20131104]通過pipe儲存sqlplus的輸出.txtSQL
- 過濾函式函式
- 代理過濾器過濾器
- 過濾FilteringFilter
- vue 過濾器Vue過濾器
- Filter過濾器Filter過濾器
- hbase過濾器過濾器
- CAN過濾器過濾器
- Servlet過濾器Servlet過濾器
- oracle blob過濾Oracle
- JS過濾emojiJS
- 26、過濾器過濾器
- java 過濾 htmlJavaHTML
- jms過濾器過濾器
- 檢視過濾
- DataV過濾器過濾器
- vue 列表過濾Vue
- Vue過濾器Vue過濾器
- Xor過濾器:比布隆Bloom過濾器更快,更小過濾器OOM
- 誠翔濾器光刻膠過濾器濾芯:保障光刻過程的高效與安全過濾器
- [20230323]sqlplus #.txtSQL
- 點雲濾波器與過濾器過濾器
- asp.net core MVC 過濾器之ActionFilter過濾器(二)ASP.NETMVC過濾器Filter
- Vue中過濾器Vue過濾器
- 布隆過濾器過濾器
- vue---過濾器Vue過濾器