带有 CLOB 数据点的 Oracle 复合主键

Posted

技术标签:

【中文标题】带有 CLOB 数据点的 Oracle 复合主键【英文标题】:Oracle composite primary key with CLOB data point 【发布时间】:2013-08-29 14:38:07 【问题描述】:

如何利用 CLOB 数据类型作为 Oracle 中唯一键的一部分?

create table log_table
( message CLOB,
  id number,
 CONSTRAINT f PRIMARY KEY (message, id)
)

失败:

ORA-02329: 数据类型 LOB 的列不能是唯一的或主键

有解决办法吗?

【问题讨论】:

【参考方案1】:

建议:

您可以将数据传递到像MD5 或其他哈希函数中。 哈希值将存储在message_key 字段中。

create table log_table
( message_key VARCHAR2( 2048 ),
  message CLOB,
  id number,
 CONSTRAINT f PRIMARY KEY (message_key, id)
)

【讨论】:

现在这是一个有趣的方法。所以你建议散列 clob 并将其用作我的复合键是吗?

以上是关于带有 CLOB 数据点的 Oracle 复合主键的主要内容,如果未能解决你的问题,请参考以下文章

oracle 10G数据库如何插入clob字段的值的简单语句sql语句

oracle - 使用带有 CLOB 参数的连接语句

oracle如何导出具有clob字段类型的sql?

Oracle之主键(Primary Key)用法详解

Oracle 存储过程因复杂类型的 clob 而失败,并带有 ORA-22922

SQOOP 导入:删除 ORACLE CLOB 数据类型中的 pilcrow