2014-01-20 18 views
0

我正在使用Oracle数据库,并且在某些列中需要插入字符串,在某些情况下,这些字符串大于4000个符号(Oracle 11g将Varchar2大小限制为4000)。我们需要使用Oracle 11g,并且我知道12g扩展模式。出于性能考虑,我不想使用CLOB数据类型。我心目中的解决方案是进行拆分的列和编写自定义数据类型的SQLAlchemy在字符串的情况下将数据写入到第二列大于4000在Oracle上使用Varchar2包含大于4000的字符串的SQLAlchemy类型

所以,我的问题是:

  1. 我们是否会从中获得显着的性能提升(而不是使用Clob)?
  2. SQLAlchemy应该如何实现?目前我们使用types.TypeDecorator作为自定义类型,但在这种情况下,我们需要在两个字段中读/写。
+0

如果列限制是4000个字符,您如何插入一个字符串超过4000个字符?如果您需要更多,请使用CLOB,没有理由不使用它。 –

回答

1

CLOB或NCLOB将是最好的选择。避免将数据拆分成列。当数据大于2列时会发生什么 - 它会再次失败。它也使它成为恶梦。我已经看到人们将数据拆分到某些数据库的行中,仅仅是因为数据库不支持较大的字符数据类型(旧的Sybase版本)。但是,如果您的数据库有为此目的而构建的数据类型,请务必使用它。

相关问题