-----------------------------------------------
|【】【】请大家不要跟帖,此贴为学习贴【】【】 |
-----------------------------------------------*************************************************************************************************************
查看当前session的nls参数的具体值:select * from nls_session_parameters*************************************************************************************************************视图
NLS_DATABASE_PARAMETERS
NLS_INSTANCE_PARAMETERS
NLS_SESSION_PARAMETERS其实,可以从all_objects中查到你想要的东西,比如SQL> select object_name from all_objects where object_name like '%NLS%';*************************************************************************************************************
col parameter for a30
col value for a30
select * from nls_session_parameters;*************************************************************************************************************
【】【】请大家不要跟帖,此贴为学习贴【】【】
PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_LANGUAGE                   SIMPLIFIED CHINESE
NLS_TERRITORY                  CHINA
NLS_CURRENCY                   ¥
NLS_ISO_CURRENCY               CHINA
NLS_NUMERIC_CHARACTERS         .,
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_session_parameters的结果帮我看看select to_date('17-dec-1980','dd-mon-yyyy') from dual ;
为什么总报错呢
ORA-01843: not a valid month
*************************************************************************************************************
QUOTE:
--------------------------------------------------------------------------------
最初由 tony7603 发布
col parameter for a30
col value for a30
select * from nls_session_parameters;
PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_LANGUAGE                   SIMPLIFIED CHINESE
NLS_TERRITORY                  CHINA
NLS_CURRENCY                   ¥
NLS_ISO_CURRENCY               CHINA
NLS_NUMERIC_CHARACTERS         .,
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_session_parameters的结果帮我看看select to_date('17-dec-1980','dd-mon-yyyy') from dual ;
为什么总报错呢
ORA-01843: not a valid month 
*************************************************************************************************************
alter session set NLS_DATE_LANGUAGE='AMERICAN';*************************************************************************************************************
另外我在client设置了
nls_lang  AMERICAN_AMERICA.ZHS16GBK这个设置会起到什么作用呢。我同事先装了一个9i的client后来又装了一个10g的数据库,我就是搞不明白session nls的那些值是从哪里继承来的。本地nls_lang  AMERICAN_AMERICA.ZHS16GBK
*************************************************************************************************************
先执行 set oracle_sid=****(sid为你想进入的那个实例) 然后在进入到sqlplus里*************************************************************************************************************PL/SQL设置 收藏 
 
1、PL/SQL Developer记住登陆密码 
   在使用PL/SQL Developer时,为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码; 
设置方法:PL/SQL Developer 7.1.2  ->tools->Preferences->Oracle->Logon History , “Store history”是默认勾选的,勾上“Store with password” 即可,重新登录在输入一次密码则记住了。 
2、执行单条SQL语句 
   在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句; 
设置方法:PL/SQL Developer 7.1.2 -->tools->Preferences-->Window types ,勾上“AutoSelect Statement” 即可。 
3、格式化SQL语句 
   在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析; 
使用方法:选中需要格式化的SQL语句,然后点击工具栏的PL/SQL beautifier按钮即可. 
4、查看执行计划 
  在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,如何可以提高查询的效率,可以通过查看Oracle提供的执行计划; 
使用方法:选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),或者直接按F5即可。 
5、调试存储过程 
   在使用PL/SQL Developer操作Oracle时,有时候调用某些存储过程,或者调试存储过程; 
调用存储过程的方法:首先,在PL/SQL Developer左边的Browser中选择Procedures,查找需要调用的存储过程;然后,选中调试的存储过程,点击右键,选择Test,在弹出来的Test scrīpt窗口中,对于定义为in类型的参数,需要给该参数的Value输入值;最后点击上面的条数按钮:Start debugger 或者按F9;最后点击:RUN 或者Ctrl+R 
6.左下角显示window list 
  点击菜单 tools -> window list, 将弹出的小窗口拖到左下角合适位置,然后点击菜单 window->save layout 
7.防止登录超时 
  tools->Preferences-->Oracle->Connection  选择 "check connection" 
8.不备份sql文件 
  tools->Preferences->Files->backup,页面中backup files中选择 disabled======引用如下======连接oracle10g免安装客户端解决办法 
首先,在安装ORACLE服务器的机器上搜索下列文件, 
oci.dll 
ocijdbc10.dll 
ociw32.dll 
orannzsbb10.dll 
oraocci10.dll 
oraociei10.dll 
sqlnet.ora 
tnsnames.ora 
classes12.jar 
ojdbc14.jar 
制作成压缩文件,配置目标计算机使用。 
1.将 oracleinstantclient.rar解压缩到一个目录, 如d:\oracleinstantclient 
2.配置 d:\oracleinstantclient的tnsnames.ora文件,只需要修改其中的服务器地址、服务名称和端口。 
3、配置环境变量,在PATH变量中加入d:\oracleinstantclient 
4、注册表加入下面键值       
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] 
"LD_LIBRARY_PATH"="d:\OracleInstantClient" 
"NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK" 
"TNS_ADMIN"="d:\OracleInstantClient" 
5、如果是ASP.NET应用,则要为ASPNET用户分配d:\oracleinstantclient文件夹的读写权限。 
通过上面的设置后,即可实现免安装ORACLE客户端,连接到ORACLE数据库服务器。 
也可以将上面解压缩后的文件和手动过程制作成安装包,实现自动安装。 
注意: 
1、用上面的方法,连接oracle9.2,应该也没有问题。 
2、如果使用JDBC连接,需要到官网下载instantclient-jdbc-win32-10.1.0.2.zip:   包含JDBC   Driver的包=====================================================================================配置完毕,第一遍没连上(TNS连接超时),重启PC再测试连接,跳出错误:ORA-12705:invalid or unknown NLS parameter value specified.说明进步了,有希望 :P 去修改NLS_LANG同DB Server上注册表里的值,同样要重启PC,再试,OK!!!Oracle客户端NLS_LANG设置
1. NLS_LANG 参数组成 
NLS_LANG参数由以下部分组成: 
NLS_LANG=<Language>_<Territory>.<Clients Characterset>NLS_LANG各部分含义如下: 
LANGUAGE指定: 
-Oracle消息使用的语言 
-日期中月份和日显示 
TERRITORY指定 
-货币和数字格式 
-地区和计算星期及日期的习惯 
CHARACTERSET: 
-控制客户端应用程序使用的字符集 
通常设置或者等于客户端(如Windows)代码页 
或者对于unicode应用设置为UTF8在Windows上查看当前系统的代码页可以使用chcp命令: 
E:\>chcp 
活动的代码页: 936代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接: 
http://www.microsoft.com/globaldev/reference/dbcs/936.htm2. 查看 NLS_LANG 的方法 
Windows使用:echo %NLS_LANG% 
如: 
E:\>echo %NLS_LANG% 
AMERICAN_AMERICA.ZHS16GBKUnix使用:env|grep NLS_LANG 
如: 
/opt/oracle>env|grep NLS_LANG 
NLS_LANG=AMERICAN_CHINA.ZHS16GBKWindows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于: 
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\ 
xx指存在多个ORACLE_HOME时系统编号。3. 查看数据库当前字符集参数设置 
SELECT * FROM v$nls_parameters; 
或 
select * from nls_database_parameters 
或 
select userenv(‘language’) from dual;4. 查看数据库可用字符集参数设置 
SELECT * FROM v$nls_valid_values;5. 客户端 NLS_LANG 的设置方法 
Windows: 
# 常用中文字符集 
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 
# 常用unicode字符集 
set NLS_LANG=american_america.AL32UTF8 
可以通过修改注册表键值永久设置 
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANGUnix: 
# 常用unicode字符集 
export NLS_LANG=american_america.AL32UTF8 
# 常用中文字符集 
export NLS_LANG="Simplified Chinese_china".ZHS16GBK 
可以编辑 bash_profile 文件进行永久设置 
vi .bash_profile 
NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG 
# 使 bash_profile 设置生效 
source .bash_profile本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/62guangye/archive/2010/02/05/5291283.aspx*************************************************************************************************************

解决方案 »

  1.   

    Oracle客户端NLS_LANG设置 收藏 
    Oracle客户端NLS_LANG设置 
    1. NLS_LANG 参数组成 
    NLS_LANG参数由以下部分组成: 
    NLS_LANG=_. 
    NLS_LANG各部分含义如下: 
    LANGUAGE指定: 
    -Oracle消息使用的语言 
    -日期中月份和日显示 
    TERRITORY指定 
    -货币和数字格式 
    -地区和计算星期及日期的习惯 
    CHARACTERSET: 
    -控制客户端应用程序使用的字符集 
    通常设置或者等于客户端(如Windows)代码页 
    或者对于unicode应用设置为UTF8 
    在Windows上查看当前系统的代码页可以使用chcp命令: 
    E:\>chcp 
    活动的代码页: 936 
    代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接: 
    http://www.microsoft.com/globaldev/reference/dbcs/936.htm 2. 查看 NLS_LANG 的方法 
    Windows使用: 
    echo %NLS_LANG% 
    如: 
    E:\>echo %NLS_LANG% 
    AMERICAN_AMERICA.ZHS16GBK 
    Unix使用: 
    env|grep NLS_LANG 
    如: 
    /opt/oracle>env|grep NLS_LANG 
    NLS_LANG=AMERICAN_CHINA.ZHS16GBK 
    Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于: 
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\ 
    xx指存在多个ORACLE_HOME时系统编号。 3. 查看数据库当前字符集参数设置 
    SELECT * FROM v$nls_parameters; 
    或 
    select * from nls_database_parameters 
    或 
    select userenv(‘language’) from dual; 4. 查看数据库可用字符集参数设置 
    SELECT * FROM v$nls_valid_values; 5. 客户端 NLS_LANG 的设置方法 
    Windows: 
    # 常用中文字符集 
    set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 
    # 常用unicode字符集 
    set NLS_LANG=american_america.AL32UTF8 
    可以通过修改注册表键值永久设置 
    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG 
    Unix: 
    # 常用unicode字符集 
    export NLS_LANG=american_america.AL32UTF8 
    # 常用中文字符集 
    export NLS_LANG="Simplified Chinese_china".ZHS16GBK 
    可以编辑 bash_profile 文件进行永久设置 
    vi .bash_profile 
    NLS_LANG="Simplified Chinese_china".ZHS16GBK export NLS_LANG 
    # 使 bash_profile 设置生效 
    source .bash_profile 
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/firefoxboy/archive/2008/10/04/3013431.aspx
    *************************************************************************************************************
    *************************************************************************************************************
    -----------------------------------------------
    |【】【】请大家不要跟帖,此贴为学习贴【】【】 |
    -----------------------------------------------