plsqldev 日期格式

之前装 win7 + oracle 11 R2 (64) + instantclient_11_2 (32) + PLSQL(32) 费了很大力气,见前一个帖子,后果就是plsql启动时读的环境变量位置是五花八门,可能是注册表中oraclehone下的,也可能是instantclient下的或者是电脑高级属性中环境变量,当然start.bat中的设置优先。

plsql中执行以下语句,查看日期格式

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_TIMESTAMP_FORMAT';

四处扒帖子,帖子一:

找到注册表:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\oraclehome]
"NLS_TIMESTAMP_FORMAT"="YYYY-MM-DD HH24:MI:SS:FF6" 
在注册表中设置Oracle环境变量的地方(也就是设置ORACLE_HOME的地方)设置NLS_TIMESTAMP_FORMAT的格式(也就是创建这样一个字符串项,然后设置它的值为你、转换需要的掩码,我一般设置为YYYY-MM-DD HH24:MI:SS:FF6),然后关掉PL/SQL DEVELOPER,重新登录,如果没有效果,重启电脑。
结果----改完后oracle抽风似的的把服务停止了,居然还无法启动
 
帖子二:
第一步在pl/sql developer中找菜单Tools 选Preferences—NLS Options选项,在右侧选择Windows format选项,保存。
第二步更新系统的环境变量,右键我的电脑选“属性”,选“高级”页,点环境变量,在系统变量中新建,变量名:nls_date_format  变量值 YYYY-MM-DD HH24:MI:SS 保存退出。
 
结果 --- 就是没有任何效果,后来尝试把这个变量写道start.bat中,仍然无效,最后发现问题在哪里了,囧了个囧啊,我要改的是”NLS_ TIMESTAMP_FORMAT“ 而不是”nls_ date_format“ 添加环境 NLS_ TIMESTAMP _FORMAT,指设为 YYYY-MM-DD HH24:MI:SS:FF6,搞定。
 
帖子三:
 修改ORACLE-NLS_DATE_FORMAT时间格式的四种方式
1.可以在用户环境变量中指定(LINUX)。
在用户的.bash_profile中增加两句:
export NLS_LANG=AMERICAN       ---要注意这一句必须指定,不然下一句不生效。
export NLS_DATE_FORMAT= 'yyyy/mm/dd hh24:mi:ss'
 
2.在SQLPLUS的glogin.sql文件增加一句:
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ;
 
3.直接修改当前会话的日期格式 :
alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss' ;
 
4.修改数据库的参数,需要重启数据库后生效  
SQL> alter system set nls_date_format= 'yyyy-mm-dd hh24:mi:ss' scope=spfile;
等我有时间慢慢验证

猜你喜欢

转载自likaidalian.iteye.com/blog/2196830