目前我正在为基于Web的应用程序制作一些SQL命令行界面。它应该大致像sqlPlus。 我遇到了如何执行sql的问题。它们可以是SQL和/或PL / SQL。
第一种方式我认为我可以拆分它们(通过';'或'; /')并单独检测它是否是sql select或delete / update / insert或pl / sql。
现在我找不到PL / SQL Backus-Naur Form来制作正则表达式。可能存在更简单的方法吗?
一般来说,制作这种逻辑的最佳方法是什么?
TIA
答案 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可能会有所帮助。