我目前正在使用Java版本的General SQL Parser for Oracle来处理一些相对复杂的Oracle SQL查询。
在我的情况下,我无法访问任何Oracle数据库,但只有文件中的SQL语句,我会遇到解析器失败的一些语句,其中一个特别归结为以下内容。
select id from (
with foo as (
select bar from sometable
)
select *
from foo
)
如果没有嵌套,可以毫无问题地解析with子句。
with foo as (
select bar from sometable
)
select *
from foo
我在解析器或声明中有错误吗?
最佳, 将
答案 0 :(得分:2)
这是Oracle中一个非常有效的陈述(我刚试过) 但它可能不是有效的ANSI SQL,这可能是解析器不理解它的原因。
答案 1 :(得分:2)
SQL语句有效,所以我猜解析器无法处理它。
可以肯定的是,尝试在SQL Plus中运行SQL。