具有CLOB数据点的Oracle组合主键

Woo*_*Moo 3 sql oracle

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

create table log_table
( message CLOB,
  id number,
 CONSTRAINT f PRIMARY KEY (message, id)
)
Run Code Online (Sandbox Code Playgroud)

失败了:

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

这有解决方法吗?

Luc*_*c M 6

建议:

您可以将数据传递给哈希函数MD5或其他哈希函数.散列值将存储在message_key字段中.

create table log_table
( message_key VARCHAR2( 2048 ),
  message CLOB,
  id number,
 CONSTRAINT f PRIMARY KEY (message_key, id)
)
Run Code Online (Sandbox Code Playgroud)