为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
您好:
使用DM管理工具,开启sql语法检查就可以,具体操作如下:
他想要的是SQL审核的功能,不是SQL是否有语法错误吧。
23Q4版本DEM客户端工具模块新增了SQL审核功能,内置了一些规整(也支持自定义),可用来对应用的SQL做规范性检查。
如果只是验证SELECT和DML语句,可以试试下面这个函数
CREATE OR REPLACE FUNCTION F_VALID_SQL(V_SQL VARCHAR2)
RETURN INTEGER
IS
V_CUR NUMBER;
BEGIN
V_CUR := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(V_CUR,V_SQL,1);
DBMS_SQL.CLOSE_CURSOR(V_CUR);
RETURN 1;
EXCEPTION WHEN OTHERS THEN
DBMS_SQL.CLOSE_CURSOR(V_CUR);
RETURN 0;
END;
--测试
SELECT F_VALID_SQL('SELECT ASDF'); --错误语句,返回0
SELECT F_VALID_SQL('SELECT * FROM DUAL'); --正确语句,返回1
这个函数对DDL也能做验证,但会自动执行,也不知道DBMS_SQL包里面是怎么处理的,或许有其他更好的验证办法吧
达梦管理工具编写SQL的话可以点击管理工具上窗口-选项,在查询分析器模块,编辑器相关内容进行勾选
