我的理解是Long数据类型可以存储实际的字符串(chars),而Long原始数据类型存储字符串的二进制值(chars)。这样对吗?表只能有一个长型列吗?
答案 0 :(得分:10)
文档中描述了数据类型; LONG
is explained here(或11gR2 version):
LONG列存储包含最多的可变长度字符串 2千兆字节-1,或231-1字节。 LONG专栏有很多 VARCHAR2列的特征。您可以使用LONG列进行存储 长文本字符串。
RAW和LONG RAW数据类型存储不是的数据 解释(即,在移动数据时未明确转换 Oracle数据库之间的不同系统之间)。这些数据类型是 用于二进制数据或字节字符串。例如,您可以使用 LONG RAW存储图形,声音,文档或二进制数组 数据,其解释取决于使用情况。
所以RAW
或LONG RAW
可以包含字符的二进制表示,但不会受到字符集转换等的影响,因此可能并非对此有用;一个可以包含任何其他二进制数据 - 任何不应该代表文本的东西。
来自同一LONG
部分:
一个表只能包含一个LONG列。
但是,LONG
已弃用LOB
CLOB
或NCLOB
用于文字,BLOB
用于其他所有内容),所以你不应该这样做将它们用于新工作,至少应考虑更换已有的。同样来自LONG
的相同部分:
不要创建包含LONG列的表。使用LOB列(CLOB,NCLOB, BLOB)相反。 LONG列仅支持向后 兼容性。
Oracle还建议您将现有的LONG列转换为LOB 列。
此documentation on migrating from LONG
to LOB
可能会引起您的兴趣。