之前,我们将包含最新JSON
个会话的10
存储在数据库的NCLOB
列中,以进行缓存。但是现在我们必须以JSON
格式存储所有对话,还必须提供搜索功能。为了利用oracle的文本搜索,我们尝试使用BLOB
数据类型代替NCLOB
。但是,我们面临着存储多字节字符并进行搜索的问题。有关如何使用BLOB
数据类型的任何建议?
以下是我正在尝试的示例
-使用blob列创建表---
create table departments_json (
department_id integer not null primary key,
department_data blob not null
);
---添加JSON检查约束---
alter table departments_json
add constraint dept_data_json
check ( department_data is JSON FORMAT JSON STRICT );
---------------用于文本搜索的索引json列-------
create index deptj_ctx_ix on departments_json (department_data)
indextype is ctxsys.context parameters ('section group CTXSYS.JSON_SECTION_GROUP sync (on commit)');
-使用多字节字符插入Json
insert into departments_json
values ( 100, utl_raw.cast_to_raw ('{"department_list":[{"Deptname":"DEPT-A", "value" : "məharaːʂʈrə"}]}'));
插入失败: ORA-02290:违反了检查约束(REGCOA_SPM.DEPT_DATA_JSON)