Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle connect to SQL Server Chinese character becomes question mark

Edward RexAug 31 2017 — edited Sep 20 2017

Hi all,

I am trying to build a MSSQL dblink in Oracle, the connection is fine, when selecting English character from the table with dblink its ok, but when selecting Chinese character, it becomes all "?????"

Below are the environment and configure:

Oracle version 10.2.0

Oracle Environemtn Encoding: UTF-8

Windows Server 2003

select * from nls_database_parameters;

PARAMETER                      VALUE                                 

------------------------------ ----------------------------------------

NLS_LANGUAGE                   AMERICAN                               

NLS_TERRITORY                  AMERICA                                

NLS_CURRENCY                   $                                      

NLS_ISO_CURRENCY               AMERICA                                

NLS_NUMERIC_CHARACTERS         .,                                     

NLS_CHARACTERSET               UTF8                                   

NLS_CALENDAR                   GREGORIAN                              

NLS_DATE_FORMAT                DD-MON-RR                              

NLS_DATE_LANGUAGE              AMERICAN                               

NLS_SORT                       BINARY                                 

NLS_TIME_FORMAT                HH.MI.SSXFF AM                         

PARAMETER                      VALUE                                 

------------------------------ ----------------------------------------

NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM               

NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR                     

NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR           

NLS_DUAL_CURRENCY              $                                      

NLS_COMP                       BINARY                                 

NLS_LENGTH_SEMANTICS           BYTE                                   

NLS_NCHAR_CONV_EXCP            FALSE                                  

NLS_NCHAR_CHARACTERSET         AL16UTF16                              

NLS_RDBMS_VERSION              10.2.0.1.0                             

NLS_CSMIG_SCHEMA_VERSION       5      

$ORACLE_HOME/hs/admin/initSQLSERVER.ora

HS_FDS_CONNECT_INFO = SQLSERVER

HS_AUTOREGISTER = TRUE

HS_DB_NAME = hsodbc

HS_NLS_NCHAR = UCS2
HS_FDS_TRACE_LEVEL = 0
HS_LANGUAGE=AMERICAN_AMERICA.AL16UTF16

HS_FDS_REMOTE_DB_CHARSET = ZHS16GBK


SQL Server 2016 64 bit

Windows Server 2016 64 bit

In MSSQL:

SELECT sqltablename FROM sqltable;

測試測試測試測試

In Oracle:

SELECT sqltablename FROM sqltable@sqlserver;

????????

SELECT name, collation_name

FROM sys.columns

WHERE OBJECT_ID IN (SELECT OBJECT_ID

FROM sys.objects

WHERE type = 'U'

AND name = 'sqltable')

AND name = 'sqltablename'

name                                                                                                                             collation_name

-------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------

sqltablename                                                                                                                       Chinese_PRC_CI_AS

(1 row(s) affected)

sqltablename  column properties:                                                                                                                   

data_type=nvarchar

character set=UNICODE

collation name=Chinese_PRC_CI_AS

Any help would be greatly appreciated!!Thanks!

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 18 2017
Added on Aug 31 2017
4 comments
2,190 views