Синтаксис Oracle SQL: с предложением - PullRequest
3 голосов
/ 12 мая 2011

В настоящее время я использую версию Java General SQL Parser для 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

Так есть ли ошибка в синтаксическом анализаторе или в операторе?

Best, Будет

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Оператор SQL действителен, поэтому я полагаю, что анализатор просто не может его обработать.

Чтобы убедиться, попробуйте запустить SQL в SQL Plus.

2 голосов
/ 12 мая 2011

Это совершенно правильное утверждение в Oracle (я только что попробовал).
Но это может быть недопустимый ANSI SQL, и это может быть причиной того, что анализатор не понимает этого.

...