无论整理如何,如何查找具有2字节字符的名称?

时间:2013-01-18 16:09:01

标签: sql oracle oracle11g collation

我的CUSTOMER表中有一些字符导致下游XML进程咆哮。它似乎是 LAST_NAME 具有双字节字符的位置。我已经审核了SQL Server question,其中解释了collation。但我仍然被卡住了。我注意到一些字符是2字节。我正在使用AL32UTF8和UTF8字符集。

如何找到包含2个字节字符的last_names? 这是我应该问的问题,如果我想找到所有2字节字符而不管整理?

2byte character

2 个答案:

答案 0 :(得分:3)

用于基本的字节检查!=你可以做的字符

select * 
  from customer
 where length(last_name) != lengthb(last_name); 

但是如NullUserException所述,取决于你真正想要定义特殊字符的方式。

答案 1 :(得分:1)

看这里:

http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions233.htm#SQLRF06162

SELECT last_name, VSIZE (last_name) "BYTES"      
  FROM employees
 WHERE department_id = 10
ORDER BY employee_id;

LAST_NAME            BYTES
--------------- ----------
Whalen                   6