[oracle 字符集]有个小疑问

[复制链接]
查看11 | 回复9 | 2015-5-31 22:00:00 | 显示全部楼层 |阅读模式
本帖最后由 AG安全团队 于 2015-6-16 11:36 编辑
给看看这个?是啥意思啊


zfj.png (1.42 MB, 下载次数: 25)
下载附件
2015-6-15 15:21 上传

下面这两个


zfj2.jpg (8.39 KB, 下载次数: 12)
下载附件
2015-6-15 15:21 上传



zfj4.jpg (13.99 KB, 下载次数: 19)
下载附件
2015-6-15 15:21 上传

可以详细说一下用途么?怎么设置?我执行的语句是这个:
select name,value$ from props$ where name like '%NLS%';
我想知道的是
nls_currency :?
nls_dual_currency:?
这两个为什么是“?“号,是不是可以更改怎么更改,有什么影响啊?



回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
Not sure what you mean. Why not show the SQL and result as text?
NLS parameters can be set just like any other parameters. Look them up in Reference. The names start with NLS.
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
Yong Huang 发表于 2015-6-16 03:13
Not sure what you mean. Why not show the SQL and result as text?
NLS parameters can be set just l ...

我执行的语句是这个:
select name,value$ from props$ where name like '%NLS%';
我想知道的是
nls_currency :?
nls_dual_currency:?
这两个为什么是“?“号,是不是可以更改怎么更改,有什么影响啊?
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
Nls_database_parameters
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
这个很有意思,如果你的NLS设置为china的时候nls_database_parameters的nls_currency默认就是“?”
但是此时v$parameter中的nls_currency 就是正常的¥(只有一个横线的)
似乎数据库中无法存储这个符号¥(只有一个横线的),所以就存储了一个替换字符“?”
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
Why not show the SQL and result as text? All rows, not just one or two. For example, I want to know what database character set you're using. If it's AL32UTF8, and nls_currency is still ?, that may be a bug.
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
11g
SQL> select * from nls_database_parameters;
PARAMETER
VALUE
------------------------------------------------------------ ------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE
NLS_TERRITORY
CHINA
NLS_CURRENCY
?
NLS_ISO_CURRENCY
CHINA
NLS_NUMERIC_CHARACTERS
.,
NLS_CHARACTERSET
AL32UTF8
NLS_CALENDAR
GREGORIAN
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
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
11.2.0.3.0
已选择20行。
SQL> show parameter NLS
NAME
TYPE
VALUE
------------------------------------ ---------------------- ------------------------------
nls_calendar
string
GREGORIAN
nls_comp
string
BINARY
nls_currency
string

nls_date_format
string
DD-MON-RR
nls_date_language
string
SIMPLIFIED CHINESE
nls_dual_currency
string

nls_iso_currency
string
CHINA
nls_language
string
SIMPLIFIED CHINESE
nls_length_semantics
string
BYTE
nls_nchar_conv_excp
string
FALSE
nls_numeric_characters
string
.,
nls_sort
string
BINARY
nls_territory
string
CHINA
nls_time_format
string
HH.MI.SSXFF AM
nls_time_tz_format
string
HH.MI.SSXFF AM TZR
nls_timestamp_format
string
DD-MON-RR HH.MI.SSXFF AM
nls_timestamp_tz_format
string
DD-MON-RR HH.MI.SSXFF AM TZR
SQL>
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
上面的输出是同一个数据库,从同一个client中看到的结果
client是windows7
C:\app\28952624\product\11.2.0\dbhome_1\BIN>chcp
Active code page: 936
C:\app\28952624\product\11.2.0\dbhome_1\BIN>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
C:\app\28952624\product\11.2.0\dbhome_1\BIN>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on 星期三 6月 17 09:05:28 2015
Copyright (c) 1982, 2011, Oracle.All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> col value for a50
SQL> set linesize 150
SQL> set pagesize 100
SQL> select * from nls_database_parameters;
PARAMETER
VALUE
------------------------------------------------------------ --------------------------------------------------
NLS_LANGUAGE
SIMPLIFIED CHINESE
NLS_TERRITORY
CHINA
NLS_CURRENCY
?
NLS_ISO_CURRENCY
CHINA
NLS_NUMERIC_CHARACTERS
.,
NLS_CHARACTERSET
AL32UTF8
NLS_CALENDAR
GREGORIAN
NLS_DATE_FORMAT
DD-MON-RR
NLS_DATE_LANGUAGE
SIMPLIFIED CHINESE
NLS_SORT
BINARY
NLS_TIME_FORMAT
HH.MI.SSXFF AM
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
11.2.0.3.0
已选择20行。
SQL> show parameter NLS
NAME
TYPE
VALUE
------------------------------------ ---------------------- ------------------------------
nls_calendar
string
GREGORIAN
nls_comp
string
BINARY
nls_currency
string

nls_date_format
string
DD-MON-RR
nls_date_language
string
SIMPLIFIED CHINESE
nls_dual_currency
string

nls_iso_currency
string
CHINA
nls_language
string
SIMPLIFIED CHINESE
nls_length_semantics
string
BYTE
nls_nchar_conv_excp
string
FALSE
nls_numeric_characters
string
.,
nls_sort
string
BINARY
nls_territory
string
CHINA
nls_time_format
string
HH.MI.SSXFF AM
nls_time_tz_format
string
HH.MI.SSXFF AM TZR
nls_timestamp_format
string
DD-MON-RR HH.MI.SSXFF AM
nls_timestamp_tz_format
string
DD-MON-RR HH.MI.SSXFF AM TZR
SQL>

回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
SQL> select parameter,value,dump(value),dump('?') from nls_database_parameters where parameter in ('NLS_CURRENCY','NLS_DUAL_CURRENCY');
PARAMETER
VALUEDUMP(VALUE)
DUMP('?')
------------------------------------------------------------ ---------- ------------------------------ --------------------------------
NLS_CURRENCY
?
Typ=1 Len=1: 63
Typ=96 Len=1: 63
NLS_DUAL_CURRENCY
?
Typ=1 Len=1: 63
Typ=96 Len=1: 63
SQL> select name,value,dump(value),dump('¥') from v$parameter where name in ('nls_currency','nls_dual_currency');
NAME
VALUEDUMP(VALUE)
DUMP('¥')
-------------------- ---------- ------------------------------ --------------------------------------------------
nls_currency ¥ Typ=1 Len=3: 239,191,165 Typ=96 Len=3: 239,191,165
nls_dual_currency¥ Typ=1 Len=3: 239,191,165 Typ=96 Len=3: 239,191,165
SQL>
回复

使用道具 举报

千问 | 2015-5-31 22:00:00 | 显示全部楼层
Yong Huang 发表于 2015-6-16 22:23
Why not show the SQL and result as text? All rows, not just one or two. For example, I want to know...

因为我的数据库是内网不方便拷出来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行