【发布时间】:2013-05-14 13:58:13
【问题描述】:
我有一个更新语句,我正在用 SQL::Parser 解析它
uPdate scott.emp
set ename='SCT%',emp_date=TO_DATE('04/16/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),empno='15645'
WHERE dept=20 and ename IN(select ename from emp where empno='1111');
但由于 TO_DATE 函数无法用 SQL::Parser 解析,因此会抛出错误:
Incomplete SET clause! at ./post_audit.pl line 173
Incomplete SET clause! at ./post_audit.pl line 173
如何捕获此类错误? eval 能解决问题吗?没有找到合适的文档。
解析 SQL 语句的代码:
+12 use SQL::Parser;
+34 my $statement = "uPdate scott.emp set ename='SCT%',emp_date=TO_DATE('04/16/2011 00:00:00', 'MM/DD/YYYY HH24:MI:SS'),empno='15645' WHERE dept=20 and ename IN(select ename from emp where empno='1111')";
+172 my $parser = SQL::Parser->new('AnyData', {RaiseError=>1} );
+173 $parser->parse($statement);
解析语句时在第 173 行抛出错误。
【问题讨论】:
标签: perl