2011-03-28 180 views
0

hi 我们想用数据库连接来连接一个数据库来操作select,update或...命令,我们的目标数据库是WE8ISO8859P1,而当前数据库是AR8MSWIN1256 cahrset,但是当我们操作一个命令来查看数据时,所有NonEnglish字符显得很奇怪,我们无法识别出现的文本,如果我们使用convert函数没有改变,请帮助我们查看正确的字符与我们的数据库链接。 感谢如何将不同字符集的数据转换为其他数据库?

它不具有转换职能A anaylse工作

选择转换(MENU_NAME, 'US7ASCII', 'WE8ISO8859P1'), 转换(MENU_NAME, 'ar8mswin1256', 'WE8ISO8859P1'), 转换((转换( menu_name,'US7ASCII','WE8ISO8859P 1')),'ar8mswin1256','WE8ISO8859P1'), menu_name from T $ R_MENU @“TO201.US.ORACLE.COM” WHERE MENU_ID = 601011;

结果是 EU?iY?C?ICa? OCOaI? E ???? ?C?IC 50 C 19吗? EU?iY?C?ICa? OCOaI? E ???? ?C?IC 50 C 19吗?

回答

1

大多数情况下,查询Oracle数据库时,不需要将数据从一个字符集转换为另一个字符集的函数:它会自动完成。客户端请求数据将把字符串转换为它使用的任何字符集。

就你而言,你错过了非英文字符,因为他们的在WE8ISO8859P1中不存在

您可以在目标数据库中使用NVARCHAR2而不是VARCHAR2来支持unicode字符。 NVARCHAR2专门设计用于在不修改数据库字符集的情况下处理这些字符串。有关VARCHAR2和NVARCHAR2之间的差异,请参阅this SO question

相关问题