java sqlldr_java调用sqlldr报错:Message 2100 not found
java调用Oracle的sqlldr命令报错:Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL
手动执行sqlldr 可以正常执行,但放在java中 就会报上面的2100的错。
找错误找了两天。
希望能帮助并记录这个问题。
在这里整理解决办法(两种)(先说自己的,然后总结下百度到的)。
1.先说下我遇到的问题
先说结论:手动可以执行sqlldr,但再java中则需要设置环境变量。(本人不太懂Java,至少我这样设置后问题就解决了)
网上查到的 Runtime.getRuntime().exec(cmd) 这个行代码就可以执行sqlldr,方法没错,只不过好像都没有写 还需要设置环境变量。
String[] cmd = { "/bin/bash", "-c", "echo $ORACLE_HOME;echo $LD_LIBRARY_PATH;$ORACLE_HOME/bin/" +shellCommand };final Process pid = Runtime.getRuntime().exec(cmd,new String[] { "ORACLE_HOME=/oracle/app/oracle/product/11.2.0.4/dbhome/","LD_LIBRARY_PATH=/usr/local/lib:/oracle/app/oracle/product/11.2.0.4/dbhome/lib:$LD_LIBRARY_PATH"});
Process pid=Runtime.getRuntime().exec(cmd
System.out.println("Process pid" +pid);
bufferedReader= new BufferedReader(new InputStreamReader(pid.getErrorStream()), 1024);
加上这几行就可以了。
全代码如下:
public static intexecuteShellsetHome(String shellCommand) {int success = -1;
BufferedReader bufferedReader= null;
String[] cmd= { "/bin/bash", "-c", "echo $ORACLE_HOME;echo $LD_LIBRARY_PATH;$ORACLE_HOME/bin/" +shellCommand };try{
System.out.println("执行 executeShellsetHome");final Process pid = Runtime.getRuntime().exec(cmd,new String[] { "ORACLE_HOME=/oracle/app/oracle/product/11.2.0.4/dbhome/","LD_LIBRARY_PATH=/usr/local/lib:/oracle/app/oracle/product/11.2.0.4/dbhome/lib:$LD_LIBRARY_PATH"});
Process pid=Runtime.getRuntime().exec(cmd
System.out.println("Process pid" +pid);
bufferedReader= new BufferedReader(new InputStreamReader(pid.getErrorStream()), 1024);
pid.waitFor();
success=pid.exitValue();if(0==success){
System.out.println("sqlldr 执行成功!");
}else{
String line= null;
String errorMsg= "";while (bufferedReader != null && (line = bufferedReader.readLine()) != null) {
errorMsg+=line;
}throw new Exception("执行" + shellCommand + "命令异常,异常信息" +errorMsg);
}
}catch(Exception ioe) {
ioe.printStackTrace();
System.out.println("Exception");
}finally{if (bufferedReader != null) {try{
bufferedReader.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}returnsuccess;
}
2.剩下的就是权限相关的问题
$ORACLE_HOME/rdbms/mesg/oraus.msg and oraus.msb 的权限 (也有说只需要更改oraus.msb 一个的权限即可 具体需自测)
还有可能就是将这两个文件 放到上一层目录,也就是$ORACLE_HOME/rdbms/ 这个下面,并给够权限
如果有写错的地方,请帮忙指正,有问题的一起讨论。
java sqlldr_java调用sqlldr报错:Message 2100 not found相关推荐
- jsp调用java的数据库连接,初学jsp,javabean连接数据库调用总是报错,疯了,求大神解决方案...
初学jsp,javabean连接数据库调用总是报错,疯了,求大神 原来一直用asp,现改为jsp,感觉比asp复杂多了 弄个了连接数据库好几天了,一直搞不定,请帮助.环境变量什么:JAVA_HOME, ...
- java exec执行tar_用java调用rpmbuild 报错,同一条命令直接复制到终端却能运行
用java调用rpmbuild 报错,同一条命令直接复制到终端却能运行. 命令如下: rpmbuild --define "_topdir /var/lib/jenkins/workspac ...
- 软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽。
软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽. 图片说明 最佳答案: 专家已采纳 先用c等调用一下so,看函数能否正确调用 文章来源:https://ask.csdn ...
- .net调用Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题
我又重拾.net搞一搞.老本行了,不过现在已投奔java阵营. 用visual studio 2022运行asp.net程序,结果在读取数据库的时候报错: .net调用Oracle 报错:System ...
- Mirth调用存储过程报错ORA-01861: 文字与格式字符串不匹配
Mirth调用存储过程报错.ORA-01861: 文字与格式字符串不匹配 这种绝对是日期的错误,要进行日期格式转换,具体呢需要自己一步步测试 上业务场景 function func_CreateCar ...
- java poi读取excel报错Your InputStream was neither an OLE2 stream, nor an OOXML stream
错误描述 java poi读取excel报错Your InputStream was neither an OLE2 stream, nor an OOXML stream 楼主是读取的另存为的exc ...
- python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call
python调用dll报错:ValueError: Procedure called with not enough arguments (4 bytes missing) or wrong call ...
- 调用torchtext报错OSError: libtorch_cpu.so: cannot open shared object file: No such file or directory
环境 torch版本1.4.0 报错 报错信息如题.调用torchtext报错 OSError: libtorch_cpu.so: cannot open shared object file: No ...
- c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决
c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决 参考文章: (1)c#调用excel报错 (异常来自 HRESULT:0x ...
最新文章
- 使用jquery合并表格中相同文本的相邻单元格
- python 遍历元组例子_【Python入门自学笔记专辑】——元组的创建、访问、遍历...
- 怎么删除github上的仓库?
- 003---属性查找和绑定方法
- PrimerCH4:表达式
- 巧妙设备MTU的大小,轻松提网速
- (openssh、telnet、vsftpd、nfs、rsync、inotify、samba)
- Matlab二维曲线之plot函数
- html常用代码大全_电子元器件知识资料大全
- 分享67套基于Java开发的Java毕业设计实战项目(含源码+毕业论文)【新星计划】
- stata15中文乱码_如何解决Stata14的中文乱码问题
- 【Python百日进阶-Web开发-Feffery】Day315 - fac导航4:AntdDropdown下拉菜单
- 拆解市面上卖几百上千的语聊挂机赚钱项目
- 江西应用技术职业学院计算机协会,江西应用技术职业学院47个学生社团陆续召开动员大会...
- 应对嵌入式校招面试手撕之——链表
- 平面几何中的几个著名定理
- 「表白神器」Python超火隐藏表白图 你能看出来吗?「附源码」
- PostgreSQL学习手册
- Web项目的Excel文件上传、解析、导入
- udev源码开源下载地址分享
热门文章
- OpenHarmony——LiteOS小故事(进程篇)
- 二项逻辑回归模型(logistic regression model)
- css如何利用transparent属性设置透明度?transparent属性绘制各种三角形
- transparent(指定透明度)使用方法
- 第一篇:移动APP开发-Hbuilder下载使用
- 7-3 城市间紧急救援(Dijkstra)
- 【学习笔记】云计算关键技术_虚拟化
- 用Windows电脑看epub电子书用什么阅读软件好?
- 【计量统计】计量经济学导论常见公式原理及习题解答
- [附源码]Python计算机毕业设计JAVA高校田径运动会管理