Выполнить динамический SQL и PL / SQL в Java через веб-интерфейс - PullRequest
1 голос
/ 16 февраля 2010

В настоящее время я делаю своего рода интерфейс командной строки SQL для веб-приложения. Это должно действовать примерно как sqlPlus. Я столкнулся с проблемой, как выполнить sql. Они могут быть как SQL, так и / или PL / SQL.

Сначала я подумал, что могу разделить их (по ';' или '; /') и определить отдельно, выбрать ли это sql, выбрать / удалить / обновить / вставить или pl / sql.

Теперь я не могу найти PL / SQL-форму Бэкуса-Наура для регулярного выражения. Может быть, существует более простой способ?

Вообще, как лучше создать такую ​​логику?

ТИА

Ответы [ 2 ]

2 голосов
/ 16 февраля 2010

Я думаю, что лучше всего использовать ANTLR , которые имеют PLSQL грамматику . Вы можете генерировать код для Java и других языков .

0 голосов
/ 08 января 2012

Использование regexp для разделения оператора SQL и PLSQL в сценарии sql практически невозможно.

declare
begin
select sysdate from dual;

dbms.output('hello');
end;
/

У вас есть идеи, как распознать такой простой код PLSQL с помощью regexp. Анализатор SQL - это то, что вам нужно для достижения этой цели, вот статья , которая может оказаться полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...