前言
有时通过ssh远程运维,使用SQLcl做简单的查询和调试很方便。简单实用。但是使用习惯了各种语法高度就会显的有些单调。那么能不能使用vim来做sql脚本的编写呢?那就来探究一下吧。
探究过程
我简单的百度了一下,相关资料不多。也能理解,在命令行查sql还是没法跟各种sql client工具比的,各种语法高亮,语法检查等。
既然搜索不到相关文章,那就直接查看一下帮助吧。
help edit
SQL> help editEDIT
---------
对指定文件的内容或 SQL 缓冲区的
内容调用操作系统文本编辑器。
ED[IT] [file_name[.ext]]
DEFINE 变量 _EDITOR 可用于设置要使用的编辑器
在 SQLcl 中, _EDITOR 可设置为 "内嵌"。这会将编辑器
设置为 SQLcl 编辑器。此编辑器支持以下快捷方式
\t^R - 运行当前缓冲区
\t^W - 转到缓冲区顶部
\t^S - 转到缓冲区底部
\t^A - 转到行开头
\t^E - 转到行结尾
说实话,我看到这依然不会怎么用vim编辑sql ,但是至少我知道理论上应该是支持的,就是不知道应该如何去配置。
设置使用vim编辑
SQL> DEFINE _EDITOR = vim
如何使用的nvim,则如下
SQL> DEFINE _EDITOR = nvim
这样就设置好了,执行
SQL> edit
就会自动调用vim了。但是这样vim 没有语法高亮。
SQL> edit oracle.sql
这样vim中就可以把sql语法高亮显示了。
这样感觉舒服多了。
现在可以编辑sql 了,但是如何执行刚才编辑的sql呢?我又陷入了沉思。我翻了翻help里面的东西,发现此时只要执行:
run
即可。
SQL> run
1* select * from APP_NEWS where rownum <20;
ID CLASSTYPE DETAILED_ID FABULOUS
总结
有语法高亮+智能提示舒服多啦😃
参考
《Multiple Ways to Edit in SQLcl》
https://www.thatjeffsmith.com/archive/2016/05/multiple-ways-to-edit-in-sqlcl/