Oracle 数据类型及存储方式(五)
第五部分 LONG类型
LONG是一种已经被弃用的数据类型,LOB类型是它的替代品.所以留在LOB之后进行讨论.
我们只需要简单的了解即可.为什么ORACLE还保留这种类型,只是为了向后兼容,在新的数据库设计是,不要再使用LONG类型列.
LONG类型有两种:
LONG :能存储2GB的字符
LONG RAW:能存储最多2GB的二进制数据.
我们只需要对LONG类型的限制进行了解即可.
LONG/LONG RAW 类型 CLOB/BLOB类型
一个表只能有一个LONG/LONG RAW列 一个表可以有最多1000个LOB类型列
不能用于用户自定义类型 可以用于用户自定义类型
WHERE中不能引用LONG类型 可以
除了NOT NULL,完整性约束中不能引用 可以
不支持分布式事务 支持
不能使用基本或高级复制技术 可以
不能在GROUP BY,ORDER BY,CONNECT BY,DISTINCT,UNIQUE,INTERSECT,MINUS,UNION中使用 可以通过函数来转换成一个标量SQL类型来支持
PL/SQL函数和过程中不能作为参数 可以
不能应用于内置函数,如SUBSTR 可以
CREATE TABLE AS SELECT不能使用LONG类型 支持
在有LONG类型的表中不能进行移动表空间 可以
总之一句话,新系统不应该再使用LONG类型.
老系统如果有的表的某些字段是LONG类型,要注意它的限制