通过Web界面在Java中执行动态sql和pl / sql

时间:2010-02-16 11:29:18

标签: java sql oracle jdbc plsql

目前我正在为基于Web的应用程序制作一些SQL命令行界面。它应该大致像sqlPlus。 我遇到了如何执行sql的问题。它们可以是SQL和/或PL / SQL。

第一种方式我认为我可以拆分它们(通过';'或'; /')并单独检测它是否是sql select或delete / update / insert或pl / sql。

现在我找不到PL / SQL Backus-Naur Form来制作正则表达式。可能存在更简单的方法吗?

一般来说,制作这种逻辑的最佳方法是什么?

TIA

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是使用ANTLR PLSQL grammar。您可以为java和other languages生成代码。

答案 1 :(得分:0)

使用regexp在SQL脚本中分离SQL语句和PLSQL几乎是不可能的。

declare
begin
select sysdate from dual;

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

您是否有任何想法如何使用regexp识别这样一个简单的PLSQL代码。 <{3}}是您实现这一目标所需要的,A SQL Parser可能会有所帮助。