• 【调错分享】sql injection violation, syntax error: TODO TRIGGER trigger


    记一次用java(JDBC) 创建ORACLE触发器错误。 sql injection violation, syntax error: TODO TRIGGER trigger
    报错如下图所示

    解决过程:
    第一步:检查sql语句
    将创建sql 放到plsql中执行,正确运行。触发器编译成功。
    第二步:
    根据打印的异常信息,发现是在druid.wall.WallFilter类中check方法抛出异常。
    打断点debug查看跟踪源码,找到异常抛出的位置。

    位段代码位于com.alibaba.druid.sql.parser.SQLStatementParser parseCreate()方法中。

    因为创建触发器语句使用了 "CREATE OR REPLACE TRIGGER " 结合上图源码可得知:
    该druid版本中只支持CREATE OR REPLACE PROCEDURE 和 CREATE OR REPLACE VIEW。于是怀疑druid版本过低不支持该格式语句。

    升级最新版druid连接池;成功解决
    原版本:
    druid
    1.0.29
    升级后:
    druid
    1.2.6

    注:该问题并不难解决,只是网上相关信息较少,帮助后来者少些弯路。

  • 相关阅读:
    HashTable、HashSet和Dictionary的区别
    CCF_ 201312-3_最大的矩形
    CCF_ 201312-2_ISBN号码
    CCF_201312-1_出现次数最多的数
    CCF_ 201509-2_日期计算
    CCF_ 201512-3_画图
    CCF_ 201512-2_消除类游戏
    CCF_ 201409-2_画图
    CCF_201409-1_相邻数对
    CCF_ 201412-1_门禁系统
  • 原文地址:https://www.cnblogs.com/midKing/p/14886428.html
Copyright © 2020-2023  润新知