使用 java 来调用sql plus执行oracle ddl dml脚本

使用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/[email protected]: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\\");
		
		
	}

你可能感兴趣的:(java,oracle,oracle,sql,DB,Plus,Plus,调用SQL)