首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从groovy对oracle数据库运行PL/SQL代码

如何从groovy对oracle数据库运行PL/SQL代码
EN

Stack Overflow用户
提问于 2015-06-29 15:17:21
回答 1查看 1.8K关注 0票数 1

下面是PL/SQL代码,我想从oracle数据库的groovy程序中运行。

代码语言:javascript
复制
BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE Employee';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;
/

我怎么才能拿到呢。我有所有的设置,比如从我的groovy程序连接到oracle数据库。我想做以下几件事:

代码语言:javascript
复制
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)

错误日志-从注释

下面是我正在犯的错误..。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-29 16:05:19

使用call方法执行PL/SQL块。如前所述,不要添加斜杠,而是使用终止分号。

代码语言:javascript
复制
groovyCon.call("""BEGIN
  EXECUTE IMMEDIATE 'DROP TABLE Employee';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;""")

此外,您还可以从Groovy多行字符串(“)中获益,该字符串允许在数据库和Groovy之间直接剪切和粘贴PL/SQL块。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31119400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档