SQLLDR本身就是oracle提供的数据导入工具,且速度快,没必要用存储过程,

解决方案 »

  1.   

    To:bzszp(SongZip)
    我的utl_file包的设置老是有问题,如:
    declare 
            out_file utl_file.file_type; 
    begin 
      out_file := utl_file.fopen('E:\utl', 'test.txt', 'W'); 
                          -----------------------------------
      utl_file.put_line(out_file, 'delete from data;'); 
      utl_file.fflush(out_file); 
       utl_file.fclose(out_file); 
    end; 
    在我的init.ora文件中设置如下:
    UTL_FILE=E:\utl
    这样用对吗?To: ATCG(novel gene) 
    我们需要用程序实现,以便用户使用。在存储过程中能引用sqlldr吗?
      

  2.   

    在我这里测试没有问题
    14:25:46 SQL> declare
    14:25:55   2  out_file  utl_file.file_type; 
    14:25:55   3  begin
    14:25:55   4  out_file  :=  utl_file.fopen('f:\utl',  'test.txt',  'W'); 
    14:25:59   5  utl_file.put_line(out_file,  'delete  from  data;'); 
    14:26:01   6  utl_file.fflush(out_file);  
    14:26:01   7  utl_file.fclose(out_file);    
    14:26:01   8  end;  
    14:26:01   9  /PL/SQL 过程已成功完成。已用时间:  00: 00: 00.19
    14:26:02 SQL>
      

  3.   

    "我们需要用程序实现,以便用户使用。"
    ====================================
    sqlldr难道不是程序么?难道用户一定要求用存储过程啊?
      

  4.   

    UTL_FILE_DIR=E:\utl
    一般来说SQLLDR所操作的数据要求要规范一些,这样容易整理
      

  5.   

    在我的init.ora文件中设置如下:  
    UTL_FILE=E:\utl  设置后重新启动数据库了吗?try:UTL_FILE=*
    重新启动数据库
      

  6.   

    To:bzszp(SongZip)
    我知道原因了,我没有给scott用户执行utl_file的权限。谢谢。To:ATCG(novel gene) 
    他们只要网页的形式,所以如果存储过程可以的话,可能会简单些;否则要调用操作系统命令了。