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;
这个也有些区别,不过可以用查不多的机理。就是利用odbc连接到oracle里。然后用Oracle developer迁移工具迁移,或者直接用dblink试试insert into table select * from table@exceltnsname. 可以这样试试,不确定是不是能成功,不知道对大对象execl是怎么处理的。
用JAVA写的小代码,先解析EXCEL在导入。 JXL.JAR 这个包可以到网上去下。
没导入过colb的,4楼的方法没试过。
将EXCEL文件另存为csv文件格式(以逗号分隔列值),用Oracle自带工具sqlldr导入
这个你的excel里面有一列数据大于10000个字符的话,plsql的copy以及paste是搞不定的。toad也不行的。你用java程序读取excel,然后insert into tb里面去吧。
edit data->点数据的...按钮,在弹出的窗口,选择打开文件即可
blob字段是直接拷贝不过去的,他的插入方式是要通过oracle的函数插入的。具体记得不是很清楚了。
一.建表 在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;
我的是excel啊,如何搞呢?
http://topic.csdn.net/u/20090728/15/8e3483fe-5c72-457f-832c-e9c25eaaeb83.html也可以写个小程序来操作excel.
我也卡在BLOB上了
这个也有些区别,不过可以用查不多的机理。就是利用odbc连接到oracle里。然后用Oracle developer迁移工具迁移,或者直接用dblink试试insert into table select * from table@exceltnsname. 可以这样试试,不确定是不是能成功,不知道对大对象execl是怎么处理的。
JXL.JAR 这个包可以到网上去下。
这个你的excel里面有一列数据大于10000个字符的话,plsql的copy以及paste是搞不定的。toad也不行的。你用java程序读取excel,然后insert into tb里面去吧。