我用DBMS_LOB包里的GETLENGTH()函数获取CLOB类型的长度,, 最大只返回了 18341 数值... 但实际上我的字符串不至这么多的,我跟踪看过,,字符串被截断了,,怎么会事啊...???????? 其他向DBMS_LOB.SUBSTR()函数都没有截断..... 不可能 GETLENGTH() 的最大上限值就是18341 吧????????????
解决方案 »
- record is locked by another user 这是什么意思阿。
- tsql
- 日期转换
- 求一存储过程例子(用游标返回结果集)
- 关于配置两个监听的问题
- describe为什么只显示字段名,没有字段类型
- 我在Debian 3.0_R1下安装了 Oracle 9.2.0, 无法运行图形管理界面。
- ORACLE 中奇怪问题,估计你们没碰到过,共同探讨
- 我想复制一个表的结构,用以生成另一个空表。
- vs连接Oracle服务器
- A query view LOB's requires OC18 mode,but OC17 mode is used
- oracle 触发器 动态SQL(高难度)帮我解决了话可以再另外加分
CREATE TABLE aaa(a CLOB);
INSERT INTO aaa VALUES('1234567890');
SELECT dbms_lob.getlength(a) FROM aaa;
DECLARE
l_v VARCHAR2(4000);
BEGIN
FOR i IN 1..15 LOOP
UPDATE aaa SET a=a||a;
END LOOP;
END;
/
SELECT dbms_lob.getlength(a) FROM aaa;
--返回327680
(
v_MainDataList IN VARCHAR2 DEFAULT NULL ,
IN_ListDataList IN CLOB DEFAULT NULL ,
......
......
)
AS
v_ListDataList :CLOB;
BEGIN
v_ListDataList := DBMS_LOB.SUBSTR(v_ListDataList , DBMS_LOB.GETLENGTH(v_ListDataList) , 1 );
INSERT TESTAAA (A) VALUES (v_ListDataList);
COMMIT;
END; /*如果
v_ListDataList := DBMS_LOB.SUBSTR(v_ListDataList , DBMS_LOB.GETLENGTH(v_ListDataList , 1 );
换成
v_ListDataList := DBMS_LOB.SUBSTR(v_ListDataList , 30000 , 1 );
保存在TESTAAA 表 A 中的字符串就是完整的。。
*/