[20190920]完善vim調用sqlplus腳本.txt--//以前寫的http://blog.itpub.net/267265/viewspace-2140936/=>[20170617]vim中調用sqlplus.txt --//本來自己想寫一個轉化oracle 數字的腳本,對於我來講難度有 ...
[20190920]完善vim調用sqlplus腳本.txt
--//以前寫的http://blog.itpub.net/267265/viewspace-2140936/=>[20170617]vim中調用sqlplus.txt
--//本來自己想寫一個轉化oracle 數字的腳本,對於我來講難度有點大。使用utl_raw.cast_to_number函數相對簡單,缺點就是有
--//資料庫可供使用。
$ cat sql.vim
" oracle
noremap <Leader>q1 Yp!!sqlplus -s scott/btbtms@test01p @D:\tools\Vim\vim80\o.txt<CR>kISCOTT@test01p><space>
noremap <Leader>q2 Yp!!sqlplus -s sys/btbtms@test01p as sysdba @D:\tools\Vim\vim80\o.txt<CR>kISYS@book><space>
noremap <Leader>q3 Yp!!sqlplus -s scott/btbtms@test01p @D:\tools\Vim\vim80\o.txt<CR>
noremap <Leader>q4 Yp!!sqlplus -s sys/btbtms@test01p as sysdba @D:\tools\Vim\vim80\o.txt<CR>
noremap <Leader>q5 Yp:s/ //eg<CR>Iselect utl_raw.cast_to_number(lower('<ESC>A')) n20 from dual;<ESC>!!sqlplus -s scott/btbtms@test01p<CR>
vnoremap ;q3 "ay<ESC>gv!sqlplus -s scott/btbtms@test01p @D:\tools\Vim\vim80\o.txt<CR>
vnoremap ;q4 "by<ESC>gv!sqlplus -s sys/btbtms@test01p as sysdba @D:\tools\Vim\vim80\o.txt<CR>
--//在sqlplus下使用如下腳本轉化raw到numbere.
$ cat conv_n.sql
select utl_raw.cast_to_number(lower('&1')) n20 from dual;
--//o.txt內容主要定義列寬度,主要12c許多欄位都是128.如果不設定寬度,顯示效果很差.
--//可以參考http://blog.itpub.net/267265/viewspace-2140939/=>[20170618]12c 支持更長的 identifiers
--//腳本缺點就是用戶與口令寫死了,根據需要修改就ok了。
--//再次提醒註意一點執行的語句最好不要是dml語句,比如insert,update,delete語句,還有truncate語句.因為預設就是退出就是
--//commit.存在一定的風險.
--//執行select語句一般問題不大.作為測試學習也應該避免dml語句,不然把這種習慣帶到生產庫出問題就麻煩了.
--//補充1點,還可以適當設置大一點linesize,這樣避免出現折行情況.當然還有致命的缺點,每次執行都要打開與關閉資料庫的連接.而且
--//連接串是寫死的.
--//有機會自己寫代碼實現\q5的功能.測試如下:
c10203
--//快速按\a5,輸出如下:
N20
----------
1.02