小编典典

帮助我了解Oracle中的CLOB和BLOB之间的区别

python

这主要只是“检查我的理解”类型的问题。这是我对CLOB和BLOB在Oracle中工作的理解:

  • CLOB用于XML,JSON等文本。您不应假定数据库将使用哪种编码(至少在应用程序中)存储该编码,因为它将被转换为配置为数据库使用的任何编码。
  • BLOB用于二进制数据。您可以合理地确定,它们将以您的发送方式存储,并且您将获得与发送时完全相同的数据。

因此,换句话说,我有一些二进制数据(在这种情况下为腌制的python对象)。我需要确保,当我发送它时,它将完全按照我的发送方式进行存储,并且当我将其取回时,它将完全相同。BLOB是我想要的,对吗?

为此使用CLOB真的可行吗?还是字符编码会引起足够的问题,这是不值得的?


阅读 301

收藏
2021-01-20

共1个答案

小编典典

CLOB是对编码和排序规则敏感的,BLOB而不是。

当您写到CLOBusing中时,CL8WIN1251您会写一个0xC0(西里尔字母А)。

使用读回数据时AL16UTF16,您将返回0x0410,这是UTF16这封信的代表。

如果您正在阅读BLOB,则会得到相同的结果0xC0

2021-01-20