Java掉执行sql脚本的.bat文件

本文介绍了一个使用Java程序调用SQL Plus来执行SQL脚本的方法。通过创建bat批处理文件并利用Java Runtime类执行该批处理文件,可以实现对数据库的批量操作。这种方式适用于需要定期执行SQL脚本的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java掉.bat文件

 

sql脚本 存放于D:\sqlplus\test.sql

insert into ss values(11);
insert into ss values(12);
insert into ss values(13);
commit;
exit;


sql.bat脚本

@ECHO OFF

sqlplus -s username/password@sid @D:\sqlplus\test.sql

exit


Java代码

package com.tdxx.sqlplus;

import java.io.IOException;

public class ExecComm {
	public static void main(String[] args) {
		System.out.println("开始执行.");
		runBat();
	}

	public static void runBat() {
		Runtime rt = Runtime.getRuntime();
		Process ps = null;
		try {
			ps = rt.exec("cmd.exe /C start /b D:\\sqlplus\\sql.bat");
			ps.waitFor();
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (IOException e1) {
			e1.printStackTrace();
		}

		int i = ps.exitValue();
		if (i == 0) {
			System.out.println("执行完成.");
		} else {
			System.out.println("执行失败.");
		}
	}
}


 

2025/07/31 17:03:30 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 错误初始化步骤[执行SQL脚本] 2025/07/31 17:03:30 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : java.lang.NoSuchMethodError: com.ctc.wstx.io.StreamBootstrapper.getInstance(Ljava/lang/String;Lcom/ctc/wstx/io/SystemId;Ljava/io/InputStream;)Lcom/ctc/wstx/io/StreamBootstrapper; 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3079) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3062) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3158) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3116) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3089) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2967) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2949) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.get(Configuration.java:1267) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1321) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getInt(Configuration.java:1547) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem$Cache.<init>(FileSystem.java:3658) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem.<clinit>(FileSystem.java:205) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.valcoersion.JavaIOTmpdirVariableCoercion.<clinit>(JavaIOTmpdirVariableCoercion.java:37) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.SystemVariables.<clinit>(SystemVariables.java:37) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5830) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5811) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:484) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils$JdbcConnectionParams.<clinit>(Utils.java:220) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:464) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.parseURL(Utils.java:445) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:296) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:284) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:94) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:589) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:481) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.trans.steps.sql.ExecSQL.init(ExecSQL.java:297) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2025/07/31 17:03:30 - 执行SQL脚本.0 - at java.lang.Thread.run(Thread.java:748) 2025/07/31 17:03:30 - 转换 1 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 步骤 [执行SQL脚本.0] 初始化失败! 已彻底清除旧版依赖,但我是在windows启动,用的是spoon.bat
08-01
2025/07/31 17:29:57 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 错误初始化步骤[执行SQL脚本] 2025/07/31 17:29:57 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : java.lang.NoClassDefFoundError: Could not initialize class org.apache.hive.jdbc.Utils$JdbcConnectionParams 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:464) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.parseURL(Utils.java:445) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:296) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:284) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:94) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:589) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:481) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.trans.steps.sql.ExecSQL.init(ExecSQL.java:297) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2025/07/31 17:29:57 - 执行SQL脚本.0 - at java.lang.Thread.run(Thread.java:748) 2025/07/31 17:29:57 - 转换 1 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 步骤 [执行SQL脚本.0] 初始化失败!
08-01
2025/08/01 11:54:47 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 错误初始化步骤[执行SQL脚本] 2025/08/01 11:54:47 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : java.lang.NoClassDefFoundError: com/ctc/wstx/io/SystemId 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3073) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3062) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3158) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3116) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3089) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2967) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2949) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.get(Configuration.java:1267) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1321) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getInt(Configuration.java:1547) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem$Cache.<init>(FileSystem.java:3658) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem.<clinit>(FileSystem.java:205) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.valcoersion.JavaIOTmpdirVariableCoercion.<clinit>(JavaIOTmpdirVariableCoercion.java:37) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.SystemVariables.<clinit>(SystemVariables.java:37) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5830) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5811) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:484) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils$JdbcConnectionParams.<clinit>(Utils.java:220) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:464) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.parseURL(Utils.java:445) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:296) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:284) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:94) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:589) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:481) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.trans.steps.sql.ExecSQL.init(ExecSQL.java:297) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.lang.Thread.run(Thread.java:748) 2025/08/01 11:54:47 - 执行SQL脚本.0 - Caused by: java.lang.ClassNotFoundException: com.ctc.wstx.io.SystemId 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:418) 2025/08/01 11:54:47 - 执行SQL脚本.0 - at java.lang.ClassLoader.loadClass(ClassLoader.java:351) 2025/08/01 11:54:47 - 执行SQL脚本.0 - ... 32 more 2025/08/01 11:54:47 - 转换 1 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 步骤 [执行SQL脚本.0] 初始化失败!
最新发布
08-02
2025/07/31 17:43:10 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 错误初始化步骤[执行SQL脚本] 2025/07/31 17:43:10 - 执行SQL脚本.0 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : java.lang.NoSuchMethodError: com.ctc.wstx.io.StreamBootstrapper.getInstance(Ljava/lang/String;Lcom/ctc/wstx/io/SystemId;Ljava/io/InputStream;)Lcom/ctc/wstx/io/StreamBootstrapper; 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3079) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.parse(Configuration.java:3062) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3158) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:3116) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:3089) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.loadProps(Configuration.java:2967) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2949) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.get(Configuration.java:1267) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:1321) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.conf.Configuration.getInt(Configuration.java:1547) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem$Cache.<init>(FileSystem.java:3658) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.fs.FileSystem.<clinit>(FileSystem.java:205) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.valcoersion.JavaIOTmpdirVariableCoercion.<clinit>(JavaIOTmpdirVariableCoercion.java:37) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.SystemVariables.<clinit>(SystemVariables.java:37) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5830) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<init>(HiveConf.java:5811) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hadoop.hive.conf.HiveConf$ConfVars.<clinit>(HiveConf.java:484) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils$JdbcConnectionParams.<clinit>(Utils.java:220) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:464) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.Utils.parseURL(Utils.java:445) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:296) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:284) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:94) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:664) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at java.sql.DriverManager.getConnection(DriverManager.java:208) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connectUsingClass(Database.java:589) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.normalConnect(Database.java:481) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:389) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.core.database.Database.connect(Database.java:360) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.trans.steps.sql.ExecSQL.init(ExecSQL.java:297) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at org.pentaho.di.trans.step.StepInitThread.run(StepInitThread.java:69) 2025/07/31 17:43:10 - 执行SQL脚本.0 - at java.lang.Thread.run(Thread.java:748) 2025/07/31 17:43:10 - 转换 1 - ERROR (version 9.4.0.0-343, build 0.0 from 2022-11-08 07.50.27 by buildguy) : 步骤 [执行SQL脚本.0] 初始化失败!
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值