本文主要是介绍解决shell 里执行sqlldr commond not found问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
shell 里执行sqlldr,not found问题解决
背景说明
项目需要定时将服务器里面的日志文件中的某些数据提取出来,导入到相同服务器的ORACLE数据库表中, 方式是写shell脚本然后直接进行数据处理,然后使用sqlldr 和ctl的方式将数据导入到数据库中,
之前使用过sqlldr2导出大批量数据,sqlldr倒还是头一次,脚本和数据库配置都没问题,倒是执行到sqlldr命令的时候报错了
sqlldr command not found
考虑了两个问题,一个是环境变量里字符集的问题,另外一个是执行用户的问题,逐一排查,首先排除/etc/profile中有多余环境字符的问题,然后第二个执行用户的问题,最开始执行是用的root用户,于是使用 su oracle切换成 oracle用户,但还是报错,在网上找了半天,发现一个说话,su oracle 和 su - oracle 是两种不同效果,第一个只切换用户,第二个命令还要切换环境变量,试验了一下就成功了。
值得注意的是,需要把执行脚本.sh和 .ctl 文件所属分组都改成 oracle:dba ,使用chown命令
这篇关于解决shell 里执行sqlldr commond not found问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!