下面是PL/SQL代码,我想从oracle数据库的groovy程序中运行。
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发布于 2015-06-29 16:05:19
使用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块。
https://stackoverflow.com/questions/31119400
复制相似问题