0

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

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

4

2 回答 2

1

不知道如何在 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
于 2013-07-19T13:20:55.903 回答
1

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

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

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

于 2013-07-19T14:05:18.950 回答