在pl sql中执行cp -r

时间:2015-04-07 09:38:17

标签: oracle plsql

我正在尝试通过pl sql运行linux命令,但是我收到了错误消息。以下是我的观点:

 declare
   uc    varchar2(200);
   upsql varchar2(200);
 begin
   FOR i IN (select * from cn_check) LOOP
     uc    := 'cp -r  /u1/vasex/new_invoices/pdf' || TRIM(i.path_) ||
              TRIM(i.bpl_file_name) || '/u1/vasex/new_invoices/ctunda/' ||
              TRIM(i.description_);
     uc    := TRIM(uc);
     upsql := 'vxview_exec.osexec(''' || uc || ''')';
     upsql := TRIM(upsql);
     EXECUTE IMMEDIATE upsql;
     COMMIT;
   END LOOP;
 end;

1 个答案:

答案 0 :(得分:1)

EXECUTE IMMEDIATE允许您执行PL / SQL代码但不能执行OS命令。您需要使用OS_COMMAND包才能执行此操作。

有关OS_COMMAND here

的更多信息