我想在java执行linux上的导入oracle数据的sqlload指令,但首先必须先执行su - oracle,然后执行sqllldr usering=? control=?执行,这个同时执行多条指令如果完成呢。
Runtime r = Runtime.getRuntime();
Process process = r.exec("su - oracle && sqlldr userid=? control=..ctl"); //这个不行啊
请坛子里大神帮帮忙
Runtime r = Runtime.getRuntime();
Process process = r.exec("su - oracle && sqlldr userid=? control=..ctl"); //这个不行啊
请坛子里大神帮帮忙
甚至你可以动态生成一个批处理文件,再执行它。
直接执行bash,就跟你Windows下直接执行cmd是类似的,但是你看不到操作界面。所以要用 getOutputStream() 然后当作键盘输入来写命令行;
同时还要用 getInputStream() 当作显示器来读取响应内容;
此外还要用 getErrorStream() 来读取可能的出错信息。所以总体复杂度高很多,不到万不得已,建议用批处理。
批处理不太会啊,而且是linux系统下的批处理,麻烦指点
cd \
ls然后:
chmod -777 aaa然后执行:
.\aaa
脚本里通过$1获取ctl,java调用的时候传入ctl 如 runtime.exec("xxx脚本 clt文件");