通过Java运行Oracle Sql脚本

时间:2012-05-25 08:24:35

标签: java oracle triggers oracle11g

我为oracle数据库写了一个java程序到insert and update数据。在插入或更新数据之前,我需要DISABLE一些触发器。插入或更新数据后,还需要ENABLE以前禁用的触发器。我写了两个sql脚本pre_script.sqlpost_script.sqlDISABLEENABLE触发器。

我怎么能用java运行这些文件?是否有任何方法可以传递这些sql文件以便在java中执行?

2 个答案:

答案 0 :(得分:2)

最简单的选择是将SQL脚本创建为数据库中的存储过程或函数,然后只需要从Java进行简单调用即可执行它们。

CallableStatement cs = conn.prepareCall("{ call pre_script_as_func() }");
cs.execute();

// do inserts, updates 

cs = conn.prepareCall("{ call post_script_as_func() }");
cs.execute();

答案 1 :(得分:0)

import java.io.*;
import java.sql.*;

假设连接对象为conn

从连接对象创建SQL语句:

Statement DMLString conn.createStatement();

创建一个字符串变量并使用alter trigger语句填充:

String sql = "ALTER TRIGGER [TRIGGER_NAME] DISABLE";

对数据库执行SQL

String  result = DMLString.execute(sql.toString());