zoukankan      html  css  js  c++  java
  • 【调错分享】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

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

  • 相关阅读:
    随机图片
    单页网站
    最安全的聊天工具——Cryptocat
    一个游戏——小黑屋
    SAO Utils – SAO风格启动菜单
    对话框实现
    抖动文字
    Leetcode: 22. Generate Parentheses
    Leetcode: 21. Merge Two Sorted Lists
    Leetcode: 20. Valid Parentheses
  • 原文地址:https://www.cnblogs.com/midKing/p/14886428.html
Copyright © 2011-2022 走看看