我的理解是Long数据类型可以存储实际的字符串(chars),而Long原始数据类型存储字符串的二进制值(chars).这样对吗?表只能有一个长型列吗?
Ale*_*ole 10
数据类型在文档中描述; LONG这里解释(或11gR2版本):
LONG列存储包含最多2千兆字节-1或231-1字节的可变长度字符串.LONG列具有VARCHAR2列的许多特性.您可以使用LONG列存储长文本字符串.
RAW和LONG RAW数据类型存储Oracle数据库无法解释的数据(即,在不同系统之间移动数据时未显式转换).这些数据类型适用于二进制数据或字节字符串.例如,您可以使用LONG RAW来存储图形,声音,文档或二进制数据数组,其解释取决于使用情况.
所以a RAW或者LONG RAW可以包含字符的二进制表示,但是不会受到字符集转换等的影响,所以可能不是那么有用; 一个可以包含任何其他二进制数据 - 任何不应该代表文本的东西.
从同LONG一部分:
一个表只能包含一个LONG列.
但是,LONG不赞成使用LOB(CLOB或者NCLOB对于文本,BLOB对于其他所有内容),因此您不应该将它们用于新工作,并且至少应该考虑更换已有的任何内容.同样来自同一部分LONG:
不要创建包含LONG列的表.请改用LOB列(CLOB,NCLOB,BLOB).仅支持LONG列以实现向后兼容性.
Oracle还建议您将现有的LONG列转换为LOB列.
这从迁移文件LONG到LOB可能会感兴趣.