java - 使用java代码运行oracle脚本

标签 java oracle oracle11g

我编写了一个程序来使用java代码运行oracle(oracle11g)脚本,但是当我运行程序时它给出了错误:

ORA-00900:"invalid SQL statement".

查询是:

execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'STORAGE',false);
execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'TABLESPACE',false);
execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'SEGMENT_ATTRIBUTES', false);
execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'REF_CONSTRAINTS', false);
execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'CONSTRAINTS', false);

代码:

String Query = "execute dbms_metadata.set_transform_param (dbms_metadata.session_transform,'STORAGE',false);"
Statement st = con.createStatement();
st.executeUpdate(Query);

最佳答案

我认为你需要通过java中的匿名 block 调用该过程 使用 begin ... end 而不是 execute

String Query = "begin dbms_metadata.set_transform_param (dbms_metadata.session_transform,'STORAGE',false); end;"
Statement st = con.createStatement();
st.executeUpdate(Query);

关于java - 使用java代码运行oracle脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33867776/

相关文章:

java - 部分失败时的 executeBatch 行为

jpa - 在 Oracle 11g 中使用 JPA 存储 unicode 字符

java - 如何将 Logo 对齐到relativelayout的顶部,同时占据Android应用程序的整个宽度?

java - 在Java中如何确定一个对象是否被锁定(同步)以免阻塞?

java - 复选框 GWT 的可点击标签

oracle11g - 从表中删除数据后Oracle释放空间

sql - Oracle SQL [1..*] 关系 |在 [...*] 中排序后,从 [1...] 中选择所有行 + 从 [...*] 中选择顶行

java - 无法将消息发送到 Solace JMS 队列

oracle - 使用记录类型对象更新表

java - 标准列表返回空列表,但 oracle 数据库中有行