通过Web界面在Java中执行动态sql和pl/sql
目前我正在为基于 Web 的应用程序制作 SQL 命令行界面。它的行为应该大致类似于 sqlPlus。 我遇到了如何执行sql的问题。它们可以是 SQL 和/或 PL/SQL。
第一种方式我认为我可以将它们分开(通过“;”或“;/”)并单独检测它是否是sql select或delete/update/insert或pl/sql。
现在我找不到 PL/SQL Backus–Naur Form 来制作正则表达式。可能有更简单的方法吗?
一般来说,做出这样的逻辑的最佳方法是什么?
TIA
Currently I'm making sort of SQL command line interface for web-based application. It should act roughly like sqlPlus.
I have encountered a problem how to execute sql's. They can be both as SQL and/or PL/SQL.
First way I thought that I can split them (by ';' or ';/') and detect separately if it's sql select or delete/update/insert or pl/sql.
Now I cant find for PL/SQL Backus–Naur Form to make regexp. May be there exists easier way?
Generally, What is the best way to make such logic ?
TIA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为最好的方法是使用 ANTLR 它有一个 ANTLR 。 antlr.org/grammar/1209225566284/PLSQL3.g" rel="nofollow noreferrer">PLSQL 语法。您可以生成 Java 和其他语言的代码。
I think the best way is to use ANTLR which have a PLSQL grammar. You can generate code for java and other languages.
在sql脚本中使用regexp来分离SQL语句和PLSQL几乎是不可能的。
您知道如何使用正则表达式识别如此简单的 PLSQL 代码吗? SQL 解析器 是实现此目的所需要的,这里是 一篇可能有帮助的文章。
Use regexp to separate SQL statement and PLSQL in a sql script is almost impossible.
Do you have any ideas how to recognize such a simple PLSQL code using regexp. A SQL Parser is what you need to achieve this, here is an article that may helpful.