高分求:怎么在存储过程里调用sqlldr??在线等.

解决方案 »

  1.   


    connect sys/change_on_install 
    grant create any library to scott;
    connect scott/tiger 
    create or replace library clib as 'c:\winnt\system32\crtdll.dll';/
    CREATE OR REPLACE FUNCTION plsql_system(cmd in varchar2)
    RETURN BINARY_INTEGER 
    AS EXTERNAL LIBRARY 
    clibNAME "system";/
    show errors 
    set serveroutput on
    DECLARE cmd VARCHAR2(2000); 
    retval NUMBER;BEGIN 
    cmd := 'sqlldr80.exe userid=test/test@hmg control=d:\temp\loader\data.ctl log=d:\temp\loader\data.log errors=100'; 
    retval := plsql_system( cmd ); 
    dbms_output.put_line( retval ); 
    END;/
      

  2.   

    connect   sys/change_on_install   
    grant   create   any   library   to   scott; 
    connect   scott/tiger   
    create   or   replace   library   clib   as   'c:\winnt\system32\crtdll.dll ';/ 
    CREATE   OR   REPLACE   FUNCTION   plsql_system(cmd   in   varchar2) 
    RETURN   BINARY_INTEGER   
    AS   EXTERNAL   LIBRARY   
    clibNAME   "system ";/ 
    show   errors   
    set   serveroutput   on 
    DECLARE   cmd   VARCHAR2(2000);   
    retval   NUMBER;BEGIN   
    cmd   :=   'sqlldr80.exe   userid=test/test@hmg   control=d:\temp\loader\data.ctl   log=d:\temp\loader\data.log   errors=100 ';   
    retval   :=   plsql_system(   cmd   );   
    dbms_output.put_line(   retval   );   
    END;/