注册

Java内批量执行脚本出错-DM管理工具执行可以

DM_227820 2024/06/20 355 1

【DM版本】:DM8
【操作系统】:win10
【CPU】:I7
【问题描述】*:
主要是需要在程序内批量执行脚本,现在并不能批量执行
执行一个脚本里面内容是:
1、创建一个函数
2、调用一个函数写入一条执行记录

在 DM管理工具 执行没问题,放到Java程序里面执行就出错提示:语法分析出错

脚本内容:

CREATE OR REPLACE FUNCTION get_str (p varchar2, le int, gr int) return varchar as rs varchar2; begin select case when p in ('a', 'b') then le when p in ('c', 'd') then gr else le||'-'||gr end into rs; return rs; end; add_ver_log('测试程序执行脚本-创建函数5');

Java执行程序,为了方便看程序内脚本移除了,脚本在上面文本中

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("连接成功!开始执行脚本"); Statement statement = conn.createStatement(); String sql = "脚本内容"; try{ statement.execute(sql); }catch (SQLException e){ System.out.println("执行脚本出现异常"); } } catch (SQLException e) { System.out.println("连接失败!"); }

异常内容:
dm.jdbc.driver.DMException: 第 15 行, 第 2 列[add_ver_log]附近出现错误:
语法分析出错
at dm.jdbc.driver.DBError.throwException(SourceFile:711)~[DmJdbcDriver18-8.1.3.62.jar:- 8.1.3.62 - Production]
at dm.jdbc.a.a.y.l(SourceFile:617)
at dm.jdbc.a.a.f.l(SourceFile:137)
at dm.jdbc.a.a.y.t(SourceFile:550)
at dm.jdbc.a.a.y.E(SourceFile:531)
at dm.jdbc.a.a.a(SourceFile:217)
at dm.jdbc.a.a.a(SourceFile:693)
at dm.jdbc.driver.DmdbStatement.executeInner(SourceFile:734)
at dm.jdbc.driver.DmdbStatement.do_execute(SourceFile:189)
at dm.jdbc.driver.DmdbStatement.do_execute(SourceFile:181)
at dm.jdbc.driver.DmdbStatement.execute(SourceFile:1304)

回答 0
暂无回答
扫一扫
联系客服