1.启用DB2的explain功能:(需要有操作)
a.执行~sqllib/MISC/EXPLAIN.DDL
b.CALL SYSPROC.SYSINSTALLOBJECTS('EXPLAIN','C',NULL,CURRENT SCHEMA)--需要有DBA的权限
2.写DB2存储过程:
CREATE OR REPLACE PROCEDURE VALIDATE_SQL (
IN P_SQL VARCHAR(256),
OUT P_RESULT INTEGER )
SPECIFIC "SQL140507095557152"
LANGUAGE SQL
NOT DETERMINISTIC
EXTERNAL ACTION
MODIFIES SQL DATA
INHERIT SPECIAL REGISTERS
OLD SAVEPOINT LEVEL
BEGIN
DECLARE exit HANDLER FOR sqlexception set P_RESULT = 0;
BEGIN
set current explain mode explain;
EXECUTE IMMEDIATE P_SQL;
set current explain mode no;
SET P_RESULT = 1;
END;
END;
3.在MYBATIS中调用:
SERVICE:
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("P_SQ