通过 Web 界面在 Java 中执行动态 sql 和 pl/sql
Posted
技术标签:
【中文标题】通过 Web 界面在 Java 中执行动态 sql 和 pl/sql【英文标题】:Execute dynamic sql and pl/sql in Java via web interface 【发布时间】:2010-02-16 11:29:18 【问题描述】:目前我正在为基于 Web 的应用程序制作某种 SQL 命令行界面。它的行为应该大致类似于 sqlPlus。 我遇到了如何执行sql的问题。它们可以是 SQL 和/或 PL/SQL。
我认为我可以拆分它们的第一种方式(通过';'或';/')并分别检测它是sql select还是delete/update/insert还是pl/sql。
现在我找不到 PL/SQL Backus–Naur Form 来制作正则表达式。可能有更简单的方法吗?
一般来说,制作这种逻辑的最佳方法是什么?
TIA
【问题讨论】:
【参考方案1】:我认为最好的方法是使用具有PLSQL grammar 的ANTLR。你可以为java和other languages生成代码。
【讨论】:
【参考方案2】:在sql脚本中使用正则表达式分隔SQL语句和PLSQL几乎是不可能的。
declare
begin
select sysdate from dual;
dbms.output('hello');
end;
/
你有什么想法如何使用正则表达式识别这样一个简单的 PLSQL 代码。 A SQL Parser 是您实现这一目标所需要的,这里是 an article 可能会有所帮助。
【讨论】:
以上是关于通过 Web 界面在 Java 中执行动态 sql 和 pl/sql的主要内容,如果未能解决你的问题,请参考以下文章
sql2java:WhereHelper基于Beanshell(bsh)动态生成SQL语句