【发布时间】:2012-10-19 10:05:57
【问题描述】:
我必须对 oracle 查询执行词法分析,并在 perl 中将查询分成不同的部分(基于子句)。例如,考虑:
Select deleteddate,deletedby from temptable where id = 10;
我需要打印
select : deleteddate , deletedby
from : temptable
where : id = 10
我用这个代码sn-p:
my $parser= SQL::Statement->new();
$parser->{PrinteError}=1;
my $query = SQL::Statement->new("select deleteddate,deletedby from temptable where id =10",$parser);
my @columns = $query->columns();
print $columns[0]->name();
虽然这会打印已删除日期,但当我在 select 子句中给出子查询时会失败:
Select deleteddate,deletedby,(select 1+1 from dual) from temptable where id = 10;
你能指点我正确的方向吗?
谢谢。
【问题讨论】:
标签: sql perl oracle parsing lexical-analysis