医疗行业里Oracle令人头疼的生僻字处理案例
事情起因
有小伙伴找到我问一下生僻字的问题,数据库是oracle 11g,字符集是zhs16gbk
下图里显示的??应该是“𧿹”这个字,算是个生僻字。
问应用厂家就说数据库字符集建错了,要改库的字符集。what???,这库都用了好几年了,现在改库字符集也不现实啊。
检查下字典点,看表里也是??显示
模拟测试
为了测试, 先创建个测试表,第1列是varchar2,第2列是nvarchar2
这里为了方便测试,使用scott用户
CREATE TABLE "SCOTT"."TEST_NAME"
( "BIANMA" NUMBER NOT NULL ENABLE,
"VARCHAR2_NAME" VARCHAR2(200 BYTE),
"NVARCHAR2_NAME" NVARCHAR2(200),
CONSTRAINT "TEST_NAME_PK" PRIMARY KEY ("BIANMA")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ;