从存储过程调用pkg_libc.system时未设置PATH环境

时间:2018-10-23 01:24:01

标签: linux oracle shell libc

我们有一个oralce 11.2.0.4数据库。触发器的代码使用pkg_libc.system库调用基本的os命令,例如ls,rm等。

在我们的生产环境(REDHAT 7.2)上,触发器按预期运行。

在我们的预保护环境(AWS,EC-2,REDHAT 7.2)上,除非在代码中使用完整路径,否则在调用pkg_libc.system OS命令时触发器会遇到问题。

例如

select  pkg_libc.system('ls') from dual;

PKG_LIBC.SYSTEM('LS')
---------------------
                32512

select  pkg_libc.system('/bin/ls') from dual;

PKG_LIBC.SYSTEM('/BIN/LS')
--------------------------
                         0

我们尝试了以下所有解决方案,但没有效果,例如

1)我们在bash_profile,bashrc等中设置PATH环境变量,但是无论何时执行pkg_libc,PATH环境变量都为空。 2)我们从bash sheel更改为korne,但存在相同的错误。 3)仅导出特定的环境变量,但失败。

我们的最终目标是在不使用完整路径的情况下使ls,chown,rm等OS命令起作用。

如果有人可以在这里提供帮助。

关于, Lancerique。

0 个答案:

没有答案