【问题标题】:SQLAlchemy type containing strings larger than 4000 on Oracle using Varchar2使用 Varchar2 在 Oracle 上包含大于 4000 的字符串的 SQLAlchemy 类型
【发布时间】:2014-02-09 20:06:37
【问题描述】:

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

所以,我的问题是:

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

【问题讨论】:

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

标签: python oracle oracle11g sqlalchemy


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多