文章目录
- 前言
- 一、LONG型的特点
- 二、尝试修改过程
- 1.Update尝试
- 2.insert尝试
- 3.变量定义尝试-1
- 4.变量定义尝试-2
- 5.更新字段尝试
- 6.复制表尝试
- 三、最终处理方式
- 1.备份表
- 2.更新字段内容-1
- 3.更新字段内容-2
- 总结
前言
前不久因业务需要,要在一个Oracle的表中修改一个LONG型字段内的内容。起初没觉得有什么难度,可几经尝试后,发现这个LONG型就是一个坑,貌似甲骨文公司就没有对这个类型做更多的技术支持。本文将讲述LONG的一些特点,并介绍在修改LONG型字段中一些问题现象以及相关修改最终处理方式
一、LONG型的特点
在Oracle19C 版本环境下, LONG型具有以下特点:
- 用于存储的是可变长字符串,最大长度限制是2GB。
- 一个表中只能包含一个 LONG 类型的列。
- 不能索引LONG类型列。
- 不能通过sql脚本复制LONG型字段内容(即对于包含LONG型字段的表不能通过insert into select方式创建表字段的副本)。
- 不能通过复制表的方式复制含有LONG型字段的表(即对于包含LONG型字段的表不能通过create table as select方式创建表结构副本)。
- LONG类型的列不能用在sql脚本的条件关键字后,如where、 group by、order by等, 以及带有distinct的select语句中。
- 不能对LONG类型的列加约束条件(NULL、NOT NULL、DEFAULT除外)。
- 不能使