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相关推荐

  1. jsp调用java的数据库连接,初学jsp,javabean连接数据库调用总是报错,疯了,求大神解决方案...

    初学jsp,javabean连接数据库调用总是报错,疯了,求大神 原来一直用asp,现改为jsp,感觉比asp复杂多了 弄个了连接数据库好几天了,一直搞不定,请帮助.环境变量什么:JAVA_HOME, ...

  2. java exec执行tar_用java调用rpmbuild 报错,同一条命令直接复制到终端却能运行

    用java调用rpmbuild 报错,同一条命令直接复制到终端却能运行. 命令如下: rpmbuild --define "_topdir /var/lib/jenkins/workspac ...

  3. 软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽。

    软件开发Linux环境下,java通过JNA调用so报错,求大神解答,感激不尽. 图片说明 最佳答案: 专家已采纳 先用c等调用一下so,看函数能否正确调用 文章来源:https://ask.csdn ...

  4. .net调用Oracle 报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本问题

    我又重拾.net搞一搞.老本行了,不过现在已投奔java阵营. 用visual studio 2022运行asp.net程序,结果在读取数据库的时候报错: .net调用Oracle 报错:System ...

  5. ​Mirth调用存储过程报错ORA-01861: 文字与格式字符串不匹配​

    Mirth调用存储过程报错.ORA-01861: 文字与格式字符串不匹配 这种绝对是日期的错误,要进行日期格式转换,具体呢需要自己一步步测试 上业务场景 function func_CreateCar ...

  6. 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 ...

  7. 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 ...

  8. 调用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 ...

  9. c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决

    c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决 参考文章: (1)c#调用excel报错 (异常来自 HRESULT:0x ...

最新文章

  1. 使用jquery合并表格中相同文本的相邻单元格
  2. python 遍历元组例子_【Python入门自学笔记专辑】——元组的创建、访问、遍历...
  3. 怎么删除github上的仓库?
  4. 003---属性查找和绑定方法
  5. PrimerCH4:表达式
  6. 巧妙设备MTU的大小,轻松提网速
  7. (openssh、telnet、vsftpd、nfs、rsync、inotify、samba)
  8. Matlab二维曲线之plot函数
  9. html常用代码大全_电子元器件知识资料大全
  10. 分享67套基于Java开发的Java毕业设计实战项目(含源码+毕业论文)【新星计划】
  11. stata15中文乱码_如何解决Stata14的中文乱码问题
  12. 【Python百日进阶-Web开发-Feffery】Day315 - fac导航4:AntdDropdown下拉菜单
  13. 拆解市面上卖几百上千的语聊挂机赚钱项目
  14. 江西应用技术职业学院计算机协会,江西应用技术职业学院47个学生社团陆续召开动员大会...
  15. 应对嵌入式校招面试手撕之——链表
  16. 平面几何中的几个著名定理
  17. 「表白神器」Python超火隐藏表白图 你能看出来吗?「附源码」
  18. PostgreSQL学习手册
  19. Web项目的Excel文件上传、解析、导入
  20. udev源码开源下载地址分享

热门文章

  1. OpenHarmony——LiteOS小故事(进程篇)
  2. 二项逻辑回归模型(logistic regression model)
  3. css如何利用transparent属性设置透明度?transparent属性绘制各种三角形
  4. transparent(指定透明度)使用方法
  5. 第一篇:移动APP开发-Hbuilder下载使用
  6. 7-3 城市间紧急救援(Dijkstra)
  7. 【学习笔记】云计算关键技术_虚拟化
  8. 用Windows电脑看epub电子书用什么阅读软件好?
  9. 【计量统计】计量经济学导论常见公式原理及习题解答
  10. [附源码]Python计算机毕业设计JAVA高校田径运动会管理