问题描述
大家好,首先感谢您提供的所有支持,这是一流的,非常感谢 :)
有一种情况,有些柱子从LONG via过早地转换为CLOB
alter table 修改 CLOB;
而且他们需要 (在短时间内) 转换为LONGs。有些blob的长度超过32k,但数量不多,我想知道最好的方法是使列定义变回很长。希望有一些我不熟悉的魔术,但是假设这种数据类型已经被弃用了很长时间,我担心没有。
非常感谢!
有一种情况,有些柱子从LONG via过早地转换为CLOB
alter table
而且他们需要 (在短时间内) 转换为LONGs。有些blob的长度超过32k,但数量不多,我想知道最好的方法是使列定义变回很长。希望有一些我不熟悉的魔术,但是假设这种数据类型已经被弃用了很长时间,我担心没有。
非常感谢!
drop table READY_FIRE_AIM ; create table READY_FIRE_AIM (col1 number, LONG_COLUMN clob); declare l_large_value_1 clob := rpad ('1',32750, '2'); l_large_value_2 clob := rpad ('2',32750, '2'); begin insert into READY_FIRE_AIM values (1, l_large_value_1 ); insert into READY_FIRE_AIM values (2, l_large_value_1 || l_large_value_2 ); commit; end; / select col1, dbms_lob.getlength(long_column) from READY_FIRE_AIM;复制
专家解答
从备份中恢复表。
你们... 确实有备份可以恢复,对吗?
如果出于某种原因这不是一个选择,我认为您可能对> 32k的字符串不走运。您可以从CLOB -> LONG复制数据,以获得比这更短的值,但较长的值将达到ORA-22835: 缓冲区太小,CLOB无法CHAR或BLOB转换为RAW。(如果未启用扩展数据类型,则限制为4,000)
我不知道有别的办法解决这个问题。
你们... 确实有备份可以恢复,对吗?
如果出于某种原因这不是一个选择,我认为您可能对> 32k的字符串不走运。您可以从CLOB -> LONG复制数据,以获得比这更短的值,但较长的值将达到ORA-22835: 缓冲区太小,CLOB无法CHAR或BLOB转换为RAW。(如果未启用扩展数据类型,则限制为4,000)
我不知道有别的办法解决这个问题。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1483次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
900次阅读
2025-03-17 11:33:53
RAC 19C 删除+新增节点
gh
548次阅读
2025-03-14 15:44:18
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
502次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
429次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
377次阅读
2025-03-26 23:27:33
墨天轮个人数说知识点合集
JiekeXu
323次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
311次阅读
2025-04-08 09:12:48
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
270次阅读
2025-03-19 14:41:51
风口浪尖!诚通证券扩容采购Oracle 793万...
Roger的数据库专栏
268次阅读
2025-03-24 09:42:53