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 行目でエラーがスローされます。