使用bat 脚本,完成用sql plus 执行sql 脚本的功能

@echo off

cd %3

sqlplus %1/%2@%6 as sysdba @%4

echo 1

exit

可以用java来调用

public boolean executeByCommand(String filePath, String commandRootDir){

try {

LOGGER.info("file path = " + filePath);

String sqlBat = SQLManager.class.getClassLoader().getResource("bat/runSQL.bat").getPath();

String commandExe = sqlBat + " " + Constant.properties.getProperty("LOC_DB_USER")

+ " " + Constant.properties.getProperty("LOC_DB_ADMIN") + " "

+ commandRootDir + " " + filePath + " "

+ Constant.properties.getProperty("BAT_LOG") + " " + Constant.properties.getProperty("LOC_DB");

LOGGER.info("Command: " + commandExe);

String result = BatUtils.runBat(commandExe);

if (result.trim().equals("1")) {

LOGGER.info("execute command successfully...");

} else {

LOGGER.info("command:" + commandExe);

LOGGER.info("execute command failure...");

throw new Exception("execute command failure...");

}

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

}

return true;

}

@Test

public void test_executeByCommand(){

//sqlplus gcedba/gcedba@10.248.156.165:1521/ORCL.corp.statestr.com

SQLManager manager = new SQLManager();

manager.executeByCommand("update_test_sql.sql",

"C:\\a528692\\GC_Code_Base\\develop_samples\\haibin_pb_tool\\src\\test\\resources\\");

}

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐