[英]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.