在单字节字符集环境中存储多字节字符oracle 12c

时间:2019-11-18 12:15:23

标签: oracle oracle12c

之前,我们将包含最新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)

0 个答案:

没有答案