有没有办法从unix .ctl文件执行oracle过程。
我尝试从.sh文件中调用该过程并成功。
但我需要从.ctl文件中调用该过程。
答案 0 :(得分:0)
您无法通过SQL * Loader执行过程,没有。您可以对单个字段值进行转换,但这不是您需要的。
最简单的解决方案可能是有一个调用SQL * Loader的shell脚本,然后调用SQL * Plus来执行该过程。作为一个非常粗略的大纲:
#!/bin/bash
sqlldr username/password control=/path/test_loading.ctl
sqlplus username/password <<!EOF
begin
your_procedure(...);
end;
/
!EOF
所以基本上你已经尝试调用你的程序的脚本,但是你添加了对SQL * Loader的调用。
这使您的控制文件与您的“类似功能”相匹配,并且它周围只有一个shell脚本包装。