非Oralce用户环境变量配置


在项目中需要给同一台服务器的web用户配置环境变量执行Oracle的sqlldr,把实现的步骤和碰到问题记录一下:

(1)把oracle目录下.profile文件对于数据库环境变量的设置拷贝到web用户的.profile文件中;

执行命令报错

$ sqlldr
sh: sqlldr:  not found.

查看,发现web用户没有oracle_home目录的执行权限,无法进入到bin目录

(2)使用chmod 755 $oracle_home更改目录权限

执行命令报错

$ sqlldr
/usr/lib/hpux64/dld.so: Unable to find library 'libclntsh.so.10.1'.
Killed

核查,发现对$oracle_home/lib也没有访问权限

(3)使用chmod 755 $oracle_home/lib更改目录权限

执行命令报错

$ sqlldr
Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL$

经过一番核查,发现还需要对目录$oracle_home/rdbms/mesg目录赋予相应权限

最后终于可以正确执行命令sqlldr

总结:当需要给非oracle用户配置使用sqlldr时,不单需要配置环境变量,还需要把相关目录的访问权限赋予该用户。

相关内容