如何从groovy againts oracle数据库运行低于PL/SQL的代码
下面是我想从groovy程序针对oracle数据库运行的PL/SQL代码如何从groovy againts oracle数据库运行低于PL/SQL的代码,oracle,groovy,Oracle,Groovy,下面是我想从groovy程序针对oracle数据库运行的PL/SQL代码 BEGIN EXECUTE IMMEDIATE 'DROP TABLE Employee'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; / 我怎么能得到那个。我已经完成了一切设置,比如从groovy程序连接到oracle数据库。 我想做如下事情: sql = Sql.n
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE Employee';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
/
我怎么能得到那个。我已经完成了一切设置,比如从groovy程序连接到oracle数据库。
我想做如下事情:
sql = Sql.newInstance(url, username, password, driver)
String plSql="BEGIN\n" +
" EXECUTE IMMEDIATE 'DROP TABLE Employee';\n" +
"EXCEPTION\n" +
" WHEN OTHERS THEN\n" +
" IF SQLCODE != -942 THEN\n" +
" RAISE;\n" +
" END IF;\n" +
"END;\n" +
"/"
sql.execute(plSql)
来自评论的错误日志
下面是我得到的错误
Jun 29, 2015 9:05:52 PM groovy.sql.Sql execute WARNING: Failed to execute: BEGIN EXECUTE IMMEDIATE 'DROP TABLE Employee'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END; / because: ORA-06550: line 9, column 1: PLS-00103: Encountered the symbol "/" The symbol "/" was ignored. Caught: java.sql.SQLException: ORA-06550: line 9, column 1: PLS-00103: Encountered the symbol "/" The symbol "/" was ignored
使用call方法执行PL/SQL块。 如上所述,不要添加斜杠,而是使用终止分号
groovyCon.call("""BEGIN
EXECUTE IMMEDIATE 'DROP TABLE Employee';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;""")
此外,您还可以从Groovy多行字符串(“”)中获益哪个允许在数据库和Groovy之间直接剪切和粘贴PL/SQL块。是否尝试运行该程序?发生了什么?下面是我收到的错误…2015年6月29日9:05:52 PM Groovy.SQL.SQL执行警告:执行失败:开始立即执行“DROP TABLE Employee”;当其他人执行时异常,如果SQLCODE!=-942N RAISE;END IF;END;/cause:ORA-06550:第9行,第1列:PLS-00103:遇到符号“/”被忽略。捕获:java.sql.SQLException:ORA-06550:第9行,第1列:PLS-00103:遇到符号“/”被忽略。如错误所示,删除结尾“/“这不是通过直接API调用需要的,但只有在作为脚本运行时才需要。@Mukesh Singh:请编辑问题以包含更多详细信息。我编辑了你的问题并从评论中删除了信息。请查看常见问题解答。如果下面的答案有用,请接受/投赞成票。