[20211224]vim插件格式化sql语句.txt

来源:这里教程网 时间:2026-03-03 17:21:06 作者:

[20211224]vim插件格式化sql语句.txt --//最近一段时间做优化sql语句工作,发现开发写的sql超级变态,很长的sql语句不带换行的,导致我抽取要调试的sql语句在sqlplus下无 --//法执行.报如下错误: SCOTT@book> @ b1.txt Input truncated to 7499 characters SP2-0027: Input is too long (> 2499 characters) - line ignored SP2-0734: unknown command beginning "sdasd asda..." - rest of line ignored. --//需要一个格式化sql语句的工具.vim下有一个插件支持格式化sql语句,我以前仅仅在windows下使用,从来没有在linux下的vim使用,安 --//装并做一个记录. --//安装步骤: 1.ALign 插件: http://www.vim.org/scripts/script.php?script_id=294 --//https://www.vim.org/scripts/download_script.php?src_id=19633 安装很简单: vim Align.vba.gz :so % :q --//注意要删除旧的AlignMaps.vim文件,不要map会冲突!新的改名为AlignMapsPlugin.vim。 --//在linux下安装出现一个奇怪问题,里面解压的文件变成。 # ls -l Align* -rw-r--r-- 1 root root 21574 2021-12-27 09:14:07 AlignMapsPlugin.vim -rw-r--r-- 1 root root  1957 2021-12-27 09:14:07 AlignPlugin.vim?[[[1 --//改名删除后面的怪字符。 --//根据喜好设置如下: let g:sqlutil_keyword_case = '\U' let g:sqlutil_align_comma = 1 --//我发现这个在linux下sqlutil_align_comma = 1不起作用,也许版本升级造成的问题。 2.SQLUtilities 插件 --//SQL utilities - Formatting, generate - columns lists, procedures for databases http://vim.sourceforge.net/scripts/script.php?script_id=492 --//https://vim.sourceforge.io/scripts/download_script.php?src_id=19113 install details Put <SQLUtilities.vim> into your .vim/plugin or vimfiles/plugin directory. Put <SQLUtilities.vim> into your .vim/autoload or vimfiles/autoload directory. Put <SQLUtilities.txt> into your .vim/doc or vimfiles/doc directory, run :helptags $VIM/vimfiles/doc. 3.另外谈谈sql语句格式化问题. --//我不知道PB里面的sql语句如何写。在toad里面有一个方法可以把编码转换成对应程序代码的格式,以delphi为例说明: toad options-> Editor -> Code Assist -> Make Code,选择delphi,保存,实际上可以自己编辑模板。 { Delphi Language Template } %SqlVar% := '%SqlText% ' +        '%SqlTextNext% ' + ; --//Quote Character 定义为',Escape Character 定义为'. --//在编辑器里面copy and paste语句: SELECT deptno,dname,loc,emp.deptno,sal,job   FROM detp,emp  WHERE dept.deptno = emp.deptno; --//按ctrl+m ,也许就从菜单选择editor->Make code statement.这样delphi statement 拷贝到模板。在ctrl+v paste出就ok了。 SQL := 'SELECT deptno,dname,loc,emp.deptno,sal,job ' +        '  FROM detp,emp ' +        ' WHERE dept.deptno = emp.deptno; ' ; --//按ctrl+p , 反向操作editor->strip code statement.就变成 SELECT deptno,dname,loc,emp.deptno,sal,job   FROM detp,emp  WHERE dept.deptno = emp.deptno; --//PB我不熟悉,我上网看了一下动态语句使用如下,很容易自己写一个模板。  如 : String mysql = " CREATE TABLE Employee" &                       + "( employee_id integer not null, " &                       ……                       + "emp_lname char(20) not null ) " EXECUTE IMMEDIATE mysql ; // 执行 DDL 创建了 table --//很容易写出要求的模板: %SqlVar% = "%SqlText% " &        + "%SqlTextNext% "  & --//sql语句格式化在toad下: SELECT deptno       ,dname       ,loc       ,emp.deptno       ,sal       ,job   FROM detp, emp  WHERE dept.deptno = emp.deptno; --//ctrl+M,ctrl+v如下: SQL = "SELECT deptno " &        + "      ,dname "  &        + "      ,loc "  &        + "      ,emp.deptno "  &        + "      ,sal "  &        + "      ,job "  &        + "  FROM detp, emp "  &        + " WHERE dept.deptno = emp.deptno; "  & --//删除分号以及尾部的&就ok了。

相关推荐