繁体   English   中英

在NVARCHAR列中查找ASCII范围之外的字符值

[英]Finding character values outside ASCII range in an NVARCHAR column

是否有一种在Oracle表中查找行的简单方法,其中特定的NVARCHAR2列具有一个或多个不符合标准ASCII范围的字符?

(我正在构建一个仓库和数据提取过程,它将Oracle数据拖入SQL Server - UCS-2 NVARCHAR - 然后将其导出为UTF-8 XML文件。我很确定我是正确地进行所有翻译,但我想找到一堆真实数据进行测试,这更容易导致问题。)

不知道如何在Oracle中解决这个问题,但是我在MS-SQL中已经完成了处理同样问题的事情......

create table #temp (id int, descr nvarchar(200))

insert into #temp values(1,'Now is a good time')
insert into #temp values(2,'So is yesterday')
insert into #temp values(2,'But not '+NCHAR(2012))

select * 
from #temp 
where CAST(descr as varchar(200)) <> descr

drop table #temp

一旦我找到了方便的ASCIISTR()函数,Sparky的SQL Server示例就足以让我找到一个非常简单的Oracle解决方案。

SELECT
  * 
FROM 
  test_table
WHERE 
  test_column != ASCIISTR(test_column)

...似乎找到了标准7位ASCII范围之外的任何数据,并且似乎适用于NVARCHAR2和VARCHAR2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM