目前,我正在为基于web的应用程序制作SQL命令行界面。它的行为应该大致类似于sqlPlus。我遇到了一个如何执行SQL的问题。它们可以是SQL和/或PL/SQL。
首先,我认为我可以将它们拆分(按';‘或';/'),并分别检测它是sql、select、delete/update/insert还是pl/sql。
现在我找不到用于PL/SQL Backus-Naur形式的regexp。也许有更简单的方式存在?
一般来说,建立这样的逻辑的最好方法是什么?
提亚
发布于 2010-02-16 19:49:58
我认为最好的方法是使用有PLSQL grammar的ANTLR。您可以为java和other languages生成代码。
发布于 2012-01-08 17:53:38
在SQL脚本中使用regexp来分离sql语句和PLSQL几乎是不可能的。
declare
begin
select sysdate from dual;
dbms.output('hello');
end;
/你知道如何使用regexp来识别这样一个简单的PLSQL代码吗?要实现这一点,您需要使用A SQL Parser,下面的an article可能会对您有所帮助。
https://stackoverflow.com/questions/2272478
复制相似问题