在oracle单字节环境中的oracle NCLOB列中搜索

时间:2019-12-12 07:39:05

标签: search special-characters oracle12c nclob multibyte-characters

部署ORACLE 12.01

单字节部署字符集:

NLS_NCHAR_CHARACTERSET  AL16UTF16
NLS_CHARACTERSET        WE8MSWIN1252

多字节部署字符集:

NLS_NCHAR_CHARACTERSET  AL16UTF16
NLS_CHARACTERSET        AL32UTF8

我在两种环境下都有下表:

  CREATE TABLE "DEPARTMENTS_JSON_NCLOB" 
   (    "DEPARTMENT_ID" NUMBER(*,0) NOT NULL ENABLE, 
    "DEPARTMENT_DATA" NCLOB NOT NULL ENABLE
   );

请注意,我具有用于存储数据的NCLOB列,并且根据用于NCLOB列的字符集为NLS_NCHAR_CHARACTERSET,这在两种环境中都是相同的。

在两种环境下均插入以下内容:

Insert into DEPARTMENTS_JSON_NCLOB (DEPARTMENT_ID,DEPARTMENT_DATA) values (140,'{"department_list":[{"Deptname":"DEPT-A", "value" : "məharaːʂʈrə"}]}');
Insert into DEPARTMENTS_JSON_NCLOB (DEPARTMENT_ID,DEPARTMENT_DATA) values (2000,'{"department_list":[{"Deptname":"DEPT-A", "value" : "məharaːʂʈrə"}]}');
Insert into DEPARTMENTS_JSON_NCLOB (DEPARTMENT_ID,DEPARTMENT_DATA) values (2001,'छत्रपती Akshay  â, ê, î, ô, û');

尝试在两种环境中搜索:

select * from departments_json_nclob where department_data like '%छत्रपती%';
select * from departments_json_nclob where department_data like '%məharaːʂʈrə%';

试图在两种环境中使用不同的多字节输入进行搜索,但是单字节结果没有行,但是多字节显示各自的结果。为什么?由于NCLOB引用了NLS_NCHAR_CHARACTERSET,这对于两种环境都是相同的

我的观察: 丢失单个字节中的实际字符-

选择c,length(c),lengthb(c) 从(选择子档,级别,1)c        从(选择'Akshayâ,ê,î,ô,ûÑüÁÉÍÓÚ's               从双)        按级别连接<=长度);

检查此-

0 个答案:

没有答案