0

我的 CUSTOMER 表中有一些字符会导致下游 XML 进程停止运行。它似乎是LAST_NAME有一个两字节字符的地方。我已经查看了解释collat​​ion的这个SQL Server 问题。但我还是被困住了。我注意到有些字符是 2 字节。我正在使用 AL32UTF8 和 UTF8 字符集。

如何找到包含 2 个字节字符的 last_names?这是我应该问的问题,是否要查找所有 2 字节字符而不考虑排序规则?

2字节字符

4

2 回答 2

3

对于 bytes != 字符的基本检查,您可以执行类似的操作

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

但正如 NullUserException 所说,这取决于您真正想要如何定义特殊字符。

于 2013-01-18T16:19:18.707 回答
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
于 2013-01-18T20:52:12.930 回答