2014-01-20 52 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版本)。但是,如果您的數據庫有爲此目的而構建的數據類型,請務必使用它。

相關問題