文本文件的Oracle数据类型?

TER*_*ytE 5 sql database oracle database-design types

我需要在Oracle中创建一个表,它将存储一系列大型文本文件.在查看Oracle数据类型之后,我不清楚应该使用哪种类型来存储文件.

像VARCHAR2这样的文本特定类型的限制似乎非常小(32K).其他类型似乎不是文本文件的正确匹配(例如BFILE).

有没有人对正确使用的类型有意见?

Gar*_*ers 9

CLOB和BLOB/BFILE之间的区别在于CLOB被视为Text.也就是说,如果从数据库中提取CLOB,它将执行从数据库字符集到客户端字符集所需的任何转换(例如,从ê中删除重音).类似地,当客户端创建CLOB时,可以存在从客户端字符集到数据库字符集的转换.如果客户端和数据库字符集相同,则不需要或不执行转换.

NCLOB与CLOB类似,不同之处在于转换使用NLS NCHAR字符集,而不是数据库字符集.

BLOB/BFILE不受转换规则的约束.

所以我通常会使用CLOB作为文本,但是如果有一些校验和/审计跟踪逻辑,我甚至不想进行字符集转换,我可能会选择BLOB/BFILE.我不会考虑长期或长期.