clob类型的数据在数据库里只是存储定位器而已,不是具体内容。这个定位器指向外部文件。
你可以使用DBMS_LOB对其进行读写操作。
你可以使用DBMS_LOB对其进行读写操作。
解决方案 »
- 请问一下这个功能如何用sql实现(内详)
- 请教高手一复杂sql语句
- pl/sql,developer和Jdevelopoer,还有application各有何不同
- 请教各位大侠一个关于数据库联机重做日志损坏导致数据库不可用的为题(很急啊,大家帮帮忙!)
- 在Oracel中怎么用T-SQL语句的到一个视图的所有字段?
- [分享]oracle817在suse8下安装笔记
- 两个用户各有自己的表空间,现想用sql语句将a用户的aa表中的数据插入到b用户的bb表中,怎么作呢??
- 高手请进,在编一个过程的时候遇到的问题
- 怎样在9i导入和导出数据啊
- 关于ORACLE物化视图是否支持外连接
- 哪位高手知道oracle9i的备份与恢复的一般方法啊!
- 请教:两台不同字符集、不同版本服务器数据转存出乱码问题
create or replace function getclob(
table_name in varchar2,
field_id in varchar2,
field_name in varchar2,
v_id in number,
v_pos in number) return varchar2
is
lobloc clob;
buffer varchar2(32767);
amount number := 2000;
offset number := 1;
query_str varchar2(1000);
begin
query_str :='select '||field_name||' from '||table_name||' where '||field_id||'= :id ';
--initialize buffer with data to be found
EXECUTE IMMEDIATE query_str INTO lobloc USING v_id;
offset:=offset+(v_pos-1)*2000;
--read 2000 varchar2 from the buffer
dbms_lob.read(lobloc,amount,offset,buffer);
return buffer;
exception
when no_data_found then
return buffer;
end;
/用法说明:用select getclob(table_name,field_id,field_name,v_id,v_pos) as partstr from dual;
可以从CLOB字段中取2000个字符到partstr中,
编一个循环可以把partstr组合成dbms_lob.getlength(field_name)长度的目标字符串