喜 我们想使用数据库链接连接数据库来操作select,update或...命令,我们的目标数据库是WE8ISO8859P1,当前数据库是AR8MSWIN1256 cahrset,但是当我们操作命令查看数据时,所有NonEnglish字符看起来都很奇怪我们无法识别出现的文本,如果我们使用转换函数没有改变会,请帮助我们查看正确的字符串与我们的数据库链接。 谢谢
它不适用于转换功能
选择转换(menu_name,'US7ASCII','WE8ISO8859P1'), 转换(MENU_NAME, 'ar8mswin1256', 'WE8ISO8859P1'), convert((convert(menu_name,'US7ASCII','WE8ISO8859P 1')),'ar8mswin1256','WE8ISO8859P1'), MENU_NAME 来自T $ R_MENU @“TO201.US.ORACLE.COM” 在哪里MENU_ID = 601011;
结果是 欧盟?iY?C?ICa? OCOaI? ê???? ?C?IC 50 C 19吗? 欧盟?iY?C?ICa? OCOaI? ê???? ?C?IC 50 C 19我?
答案 0 :(得分:1)
大多数情况下,在查询Oracle数据库时,您不需要将数据从一个字符集转换为另一个字符集的功能:它会自动完成。请求数据的客户端将字符串转换为它使用的任何字符集。
在你的情况下,你错过了非英文字符,因为它们在WE8ISO8859P1中不存在!
您可以在目标数据库中使用NVARCHAR2而不是VARCHAR2来支持unicode字符。 NVARCHAR2专门用于处理此类字符串而无需修改数据库字符集。有关VARCHAR2和NVARCHAR2之间的差异,请参阅this SO question。