嗨,我在PL / SQL Developer中遇到问题,只返回问号, 除非我通过dblink连接到另一台服务器,否则它一直都在发生,因此它能够返回丹麦字母或特殊字符,例如“£”。但是无论何时我在本地运行SQL都不会。
例如,我无法编译包含这些字母的存储过程
selecet * from some_table where column like 'øæå'
becomes **selecet * from some_table where column like '???'** after compile
a simple select 'åøæ' from dual also just returns ???
我尝试搜索此站点的答案,因为似乎有很多类似的问题。但似乎没有答案。
这个问题也只是在我的工作站上存在,我的同事们没有这个问题,我的虚拟机也没有。据我们所知,所有这些都运行相同的操作系统并具有相同的设置。
机器正在运行Windows 8,(代码页850) NLS设置
"PARAMETER";"VALUE";"CON_ID"
"NLS_LANGUAGE";"AMERICAN";"0"
"NLS_TERRITORY";"AMERICA";"0"
"NLS_CURRENCY";"$";"0"
"NLS_ISO_CURRENCY";"AMERICA";"0"
"NLS_NUMERIC_CHARACTERS";".,";"0"
"NLS_CALENDAR";"GREGORIAN";"0"
"NLS_DATE_FORMAT";"DD-MON-RR";"0"
"NLS_DATE_LANGUAGE";"AMERICAN";"0"
"NLS_CHARACTERSET";"WE8ISO8859P15";"0"
"NLS_SORT";"BINARY";"0"
"NLS_TIME_FORMAT";"HH.MI.SSXFF AM";"0"
"NLS_TIMESTAMP_FORMAT";"DD-MON-RR HH.MI.SSXFF AM";"0"
"NLS_TIME_TZ_FORMAT";"HH.MI.SSXFF AM TZR";"0"
"NLS_TIMESTAMP_TZ_FORMAT";"DD-MON-RR HH.MI.SSXFF AM TZR";"0"
"NLS_DUAL_CURRENCY";"$";"0"
"NLS_NCHAR_CHARACTERSET";"AL16UTF16";"0"
"NLS_COMP";"BINARY";"0"
"NLS_LENGTH_SEMANTICS";"BYTE";"0"
"NLS_NCHAR_CONV_EXCP";"FALSE";"0"
如果我查看regedit。我得到的Key_oraClient11g_home1文件夹 NLS_lang AMERICAN_AMERICA.WE8ISO8859P1
从WE8ISO8859P1到WE8ISO8859P15的差异应该很小。并将regedit中的WE8ISO8859P1更改为WE8ISO8859P15不能解决问题。
将nls会话语言更改为= Danish,也不能解决问题,但是确实将日期更改为丹麦语(从May => Maj,March => Marts等)
适合任何需要时间阅读和回答此问题的人。预先感谢。