2015-04-07 70 views
-1

我试图通过pl sql运行linux命令,但是我收到了错误消息。以下是我运行的内容:在pl中执行cp -r sql

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

你会得到什么错误消息。这可能对我们很有帮助。 – RiggsFolly

回答

1

EXECUTE IMMEDIATE允许您执行PL/SQL代码,但不能执行OS命令。你需要使用OS_COMMAND包才能做到这一点。

有关OS_COMMAND的更多信息here