欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[20190920]完善vim调用sqlplus脚本.txt

程序员文章站 2022-05-23 09:25:36
[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