我们有一个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。