Select returns “¿”字符
Select returns "¿" character
我的查询:
SELECT op_arv
FROM my_table@OTHER_DB
returns:
d¿identification
不应出现“¿”符号。
如果我那么运行:
SELECT
substr(op_arv,2,1) AS t_substr
,ascii(substr(op_arv,2,1)) AS t_ascii
,chr(ascii(substr(op_arv,2,1))) AS t_chr_ascii
,asciistr(substr(op_arv,2,1)) AS asciistr_1
FROM my_table@OTHER_DB
我得到以下输出:
¿
146
¿
[=15=]92
ASCII函数returns 146,对应的'(撇号)符号才有意义。但是如果我尝试 "CHR()" 实际值,我将得到 ¿ 而不是 '。 CHR(146) 给我正确的符号...
运行 ASCIISTR 函数将 return Unicode 值 \0092 这是一个 unicode 控制字符,而不是撇号...
我正在 运行宁 Oracle 11gR2 与 NLS_CHARACTERSET= WE8MSWIN1252。我正在(通过数据库 link)连接到 Oracle 数据库 运行 NLS_CHARACTERSET= WE8ISO8859P1.
有什么想法吗?
谢谢!
很可能您没有设置 NLS_LANG
值,Oracle 将其默认为 AMERICAN_AMERICA.US7ASCII
。
SQLplus从命令行继承了字符集,你可以interrogate/change命令代码页chcp
然后你必须相应地设置NLS_LANG
。
示例:
chcp 1252
set NLS_LANG=.WE8MSWIN1252
sqlplus ...
如果您在 Linux 上工作,则使用 locale charmap
或 echo $LANG
检索终端的编码。
不需要设置NLS_LANG
等于你的数据库字符集,但是你选择的字符集必须支持你的字符’
我的查询:
SELECT op_arv
FROM my_table@OTHER_DB
returns:
d¿identification
不应出现“¿”符号。
如果我那么运行:
SELECT
substr(op_arv,2,1) AS t_substr
,ascii(substr(op_arv,2,1)) AS t_ascii
,chr(ascii(substr(op_arv,2,1))) AS t_chr_ascii
,asciistr(substr(op_arv,2,1)) AS asciistr_1
FROM my_table@OTHER_DB
我得到以下输出:
¿
146
¿
[=15=]92
ASCII函数returns 146,对应的'(撇号)符号才有意义。但是如果我尝试 "CHR()" 实际值,我将得到 ¿ 而不是 '。 CHR(146) 给我正确的符号...
运行 ASCIISTR 函数将 return Unicode 值 \0092 这是一个 unicode 控制字符,而不是撇号...
我正在 运行宁 Oracle 11gR2 与 NLS_CHARACTERSET= WE8MSWIN1252。我正在(通过数据库 link)连接到 Oracle 数据库 运行 NLS_CHARACTERSET= WE8ISO8859P1.
有什么想法吗?
谢谢!
很可能您没有设置 NLS_LANG
值,Oracle 将其默认为 AMERICAN_AMERICA.US7ASCII
。
SQLplus从命令行继承了字符集,你可以interrogate/change命令代码页chcp
然后你必须相应地设置NLS_LANG
。
示例:
chcp 1252
set NLS_LANG=.WE8MSWIN1252
sqlplus ...
如果您在 Linux 上工作,则使用 locale charmap
或 echo $LANG
检索终端的编码。
不需要设置NLS_LANG
等于你的数据库字符集,但是你选择的字符集必须支持你的字符’