【发布时间】:2018-06-11 16:34:33
【问题描述】:
我正在尝试使用 dblinks 从 SQL Server 数据库检索数据(选择 *..)到 Oracle 数据库。在我的 SQL Server 数据库中,我有 nvarchar 类型的列 AddressLine1 和 AddressLine2。
我正在 SQL Developer (v 4.1.3.20) 中运行以下脚本。结果似乎在字符之间有空格。我用的是 Benthic 和 SQL Plus,结果是一样的,字符之间有空格。
SELECT
c.CandidateID,
pa."AddressLine1", pa."AddressLine2"
FROM
CANDIDATES c --Oracle table
INNER JOIN
PostalAddress@HIM pa ON pa."EntityID" = c.CandidateID -- SQL Server table
--@HIM --dblink 名称`
此截图显示结果(复制时复制空格时):
我也尝试将结果转换为varchar,结果是一样的。我尝试修剪空格并尝试用 NULL 替换空格,但结果保持不变。
任何建议将不胜感激。谢谢。
【问题讨论】:
-
那么您是在寻找导入方面的修复方法,还是寻找可以删除无关空格的查询?
-
如果我不得不猜测我会猜测字符集问题。您的 oracle 实例和 sql 服务器的字符集是什么? NVARCHAR 表示它不会进行字符集转换
-
@TimBiegeleisen 我想知道是什么导致了这个问题。删除额外空格的查询将不胜感激。如前所述,我尝试使用 trim、to_char、regex_replace、replace 函数但没有用。
-
@PeterM 对于 Oracle,它是 AL16UTF16,sql server 排序规则是 SQL_Latin1_General_CP1_CI_AS。
-
试试转换功能——它可能有用吗?从选项卡中选择 convert(address1,'AL16UTF16') - 这有什么不同吗?您在 oracle 中的列是 VARCHAR2 还是 NVARCHAR2?
标签: sql-server oracle dblink