我的一个excel有一列数据非常长,超过1万字了,需要用blob字段才能存储。这样用plsql如何导入啊,我用copy、paste的方式进去导入,结果发现 bolb字段为null,这是怎么回事?我想导入这些excel中的大数据列,如何搞啊?

解决方案 »

  1.   

    用pl/sql dev 的话,很容易呀
    edit data->点数据的...按钮,在弹出的窗口,选择打开文件即可
      

  2.   

    试试CLOB类型,看用pl/sql可以直接拷贝过去不,这个是字符型的。
    blob字段是直接拷贝不过去的,他的插入方式是要通过oracle的函数插入的。具体记得不是很清楚了。
      

  3.   

    Lob类型必须通过pl/sql或者应用程序来完成,你的文字可以在excel中展现,那就用CLOB,下面是一个抄来的例子,你可以参考,把文本文件中的字符读到数据库中
    一.建表 在scott/tiger下CREATE TABLE tlob
    (a1 int,
    a2 clob,
    CONSTRAINT pk_tlob PRIMARY KEY(a1));二.插入一条数据INSERT INTO tlob VALUES(1, empty_clob());
    COMMIT;三.创建一个目录对象,在system用户下,并授权给scott
    conn system/passwdCREATE OR REPLACE DIRECTORY clobdir AS 'D:\';
    GRANT READ,WRITE ON DIRECTORY clobdir TO scott;四.连接到scott,执行插入
    DECLARE
        l_fname VARCHAR2(20) := 'data.txt';
        l_file BFILE := BFILENAME('CLOBDIR',l_fname);
        l_clob CLOB;
    BEGIN
      IF DBMS_LOB.FILEEXISTS(l_file) = 1 THEN
        SELECT a2
          INTO l_clob
          FROM tlob
        WHERE a1 = 1
          FOR UPDATE;
        DBMS_LOB.OPEN(l_file,DBMS_LOB.LOB_READONLY);
        DBMS_LOB.LOADFROMFILE(l_clob,
            l_file,
            DBMS_LOB.GETLENGTH(l_file));
        --DBMS_LOB.TRIM(l_clob,DBMS_LOB.GETLENGTH(l_file));
        DBMS_LOB.CLOSE(l_file);     ELSE
        DBMS_OUTPUT.PUT_LINE('NONEXIST');
      END IF;
    EXCEPTION WHEN OTHERS THEN
      IF DBMS_LOB.ISOPEN(l_file) = 1 THEN
        DBMS_LOB.CLOSE(l_file);
      END IF;
    END;
    /五,测试插入结果,利用length函数SELECT length(a2) FROM tlob WHERE a1 = 1;
      

  4.   


    我的是excel啊,如何搞呢?
      

  5.   

    参考一下这个贴子
    http://topic.csdn.net/u/20090728/15/8e3483fe-5c72-457f-832c-e9c25eaaeb83.html也可以写个小程序来操作excel.
      

  6.   

    upupupupup
    我也卡在BLOB上了
      

  7.   


    这个也有些区别,不过可以用查不多的机理。就是利用odbc连接到oracle里。然后用Oracle developer迁移工具迁移,或者直接用dblink试试insert into table select * from table@exceltnsname. 可以这样试试,不确定是不是能成功,不知道对大对象execl是怎么处理的。
      

  8.   

    用JAVA写的小代码,先解析EXCEL在导入。
    JXL.JAR 这个包可以到网上去下。
      

  9.   

    没导入过colb的,4楼的方法没试过。
      

  10.   

    将EXCEL文件另存为csv文件格式(以逗号分隔列值),用Oracle自带工具sqlldr导入
      

  11.   


    这个你的excel里面有一列数据大于10000个字符的话,plsql的copy以及paste是搞不定的。toad也不行的。你用java程序读取excel,然后insert into tb里面去吧。
      

  12.   

    这个说的bucuo,支持,支持,很是可行的。
      

  13.   

    直接出SQL的数据导入功能就行了、