代码之家  ›  专栏  ›  技术社区  ›  Daniel Bleisteiner

如何将文件读入Oracle中现有的行和列?

  •  0
  • Daniel Bleisteiner  · 技术社区  · 14 年前

    我知道主ID键和文件名的确切名称。。。但是我没有找到有效的方法把这些文件读入表格。

    SQL语句 例如,Loader似乎只能添加行或替换整个表。但我只想更新单个列。我们可以使用SQL 如果需要,可以使用Loader或普通的PL/SQL脚本-任何可以使用的。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Gary Myers    14 年前

    这项工作应该按照以下几点来做。 您需要对其进行参数化,并为BLOB数据执行单独的版本。也不确定是否存在字符集问题。

    declare
        l_bfile   bfile := bfilename('DATA_PUMP_DIR','cpy.log');
        l_data    clob;
        l_soffset NUMBER := 1;
        l_doffset NUMBER := 1;
        l_lang    NUMBER := 0;
        l_warn    NUMBER;
    begin
        DBMS_LOB.createtemporary (lob_loc => l_data,cache => TRUE, 
                                     dur => DBMS_LOB.call);
        dbms_lob.fileopen( l_bfile, DBMS_LOB.file_readonly );
        DBMS_LOB.loadclobfromfile(l_data, l_bfile, DBMS_LOB.LOBMAXSIZE, 
               l_soffset, l_doffset, 0, l_lang, l_warn  );
        dbms_lob.fileclose(l_bfile);
        update f_lob set value = l_data where id = 1;
    end;
    /