在Vim中直接执行SQL
当程序需要用到数据库的时候显然离不开SQL语句,通过一个插件,就可以在Vim中直接执行SQL语句,并返回结果到新窗口.
dbext:http://www.vim.org/scripts/script.php?script_id=356
首先得安装DB2客户端,以DB2为例设置,当然得创建节点编目和数据库编目,具体参考网上的文章,例如:
db2 catalog tcp node node_name remote server_ip server server_port
db2 catalog db db_name at node node_name authentication dcs
db2 catalog dcs db db_name db_alias at node node_name
db2 terminate
然后尝试执行一条SQL:
db2 connect to db_name user user_name using pass_word
SQL statement
为了能在Cygwin中调用DB2命令行程序,需要初始化运行环境:
db2cmd -i -w -c db2
新的DB2客户端已经兼容了Cygwin,可以不需要设置直接调用.
然后提交类似命令,创建数据库实例连接才能访问.
对dbext插件作如下设置
let g:dbext_default_profile = 'DB2_Sample'
let g:dbext_default_DB2_use_db2batch = 0
let g:dbext_default_DB2_cmd_header = ''
let g:dbext_default_DB2_bin = 'db2cmd'
let g:dbext_default_DB2_cmd_terminator = ';'
let g:dbext_default_DB2_cmd_options = '-q del -s off'
let g:dbext_default_DB2_db2cmd_bin = 'db2cmd'
let g:dbext_default_DB2_db2cmd_cmd_options = '-c -w -i -t db2 -stvf'
let g:dbext_default_profile_DB2_ENV1 = 'type=DB2:user=username:dbname=ENV1'
let g:dbext_default_profile_DB2_ENV2 = 'type=DB2:user=username:dbname=ENV2'
let g:dbext_default_profile_DB2_ENV3 = 'type=DB2:user=username:dbname=ENV3'
这里ENV1,ENV2,ENV3可以是自己定义的不同环境的数据,最多可以定义10个左右.
取决于建立的数据库实例.
接下来就可以在文本中执行SQL语句了,选中或者光标移动到SQL语句上使用快捷键即可,通常是<leader>se
在Cygwin中执行也是不错的方案,还可以从定向或者用其他工具处理结果,不过得首先连接到数据:
db2cmd -i -w -c db2 db2opt sqlscript_file
比如
db2cmd -i -w -c db2 -tvf sqlscript_file
SQL脚本文件的内容:
connect to <SCHEMA> user <USER> using <PASSWORD>;
SQL statement;
connect reset
terminate