cjf@CJF>create or replace directory blobdir as 'e:\';
目录已创建。
cjf@CJF>create or replace directory "blobdir2" as 'e:\';
目录已创建。
cjf@CJF>
cjf@CJF>create table demo (id int primary key,theclob clob);
表已创建。
cjf@CJF>host echo 'Hello World\!' >e:\test.txt
cjf@CJF>declare
l_clob clob;
l_bfile bfile;
begin
insert into demo values(1,empty_clob()) returning theclob into l_clob;
l_bfile:=bfilename('BLOBDIR','test.txt');
dbms_lob.fileopen(l_bfile);
dbms_lob.loadfromfile(l_clob,l_bfile,dbms_lob.getlength(l_bfile));
dbms_lob.fileclose(l_bfile);
end;
/
PL/SQL 过程已成功完成。
cjf@CJF>
cjf@CJF>select dbms_lob.getlength(theclob),theclob from demo;
DBMS_LOB.GETLENGTH(THECLOB)
---------------------------
THECLOB
-------------------------------------------------------------------------
9
?汥潬圠牯摬???
cjf@CJF>host echo Hello World! >e:\test2.txt
cjf@CJF>declare
l_clob clob;
l_bfile bfile;
begin
insert into demo values(3,empty_clob()) returning theclob into l_clob;
l_bfile:=bfilename('BLOBDIR','test2.txt');
dbms_lob.fileopen(l_bfile);
dbms_lob.loadfromfile(l_clob,l_bfile,dbms_lob.getlength(l_bfile));
dbms_lob.fileclose(l_bfile);
end;
/
PL/SQL 过程已成功完成。
cjf@CJF>select dbms_lob.getlength(theclob),theclob from demo where id=3;
DBMS_LOB.GETLENGTH(THECLOB)
---------------------------
THECLOB
--------------------------------------------------------------------------------
7
效汬?潗汲Ⅴ?
cjf@CJF>
cjf@CJF>
E:\>type test.txt
'Hello World\!'
E:\>type test2.txt
Hello World!
E:\>
我的os是windowsxp,oracle是9.2.0.1,oracle server就是本机(我的工作机)。应该不是显示问题,因为theclob的长度比文件中的小了。
这是为什么呢?
|