ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 修改數據庫的NLS_DATE_FORMAT參數

修改數據庫的NLS_DATE_FORMAT參數

原创 Linux操作系统 作者:hky87 时间:2009-11-26 16:18:21 0 删除 编辑

今天在创建图时遇到关于NLS_DATE_FORMAT的错误,貌似客户的数据库的NLS_DATE_FORMAT值是’YYYYMMDD’,而我们数据库的NSL_DATE_FORMAT值是’DD-MON-RR’,导致在创建视图后视图不能筛出数据,视图的script类似于这样的写法:

select * from t where fire_date>=’20091126’;

由于前面的fire_date是DATE型,如果>=后面的值没有采用to_date进行格式化而直接用字串的形式的话,字串的格式必须和数据库的NLS_DATE_FORMAT一致,如NLS_DATE_FORMAT的值是DD-MON-RR的话,>=后面的值就应该是’26-11月-09’;

于是想到修改NLS_DATE_FORMAT的值,

1.       只修改session的DATE格式

SQL> alter session set nls_date_format='YYYY-MM-DD';

 

SQL> select sysdate from dual;

 

SYSDATE

----------

2009-11-26

2.       修改数据库的DATE默认格式

alter system set nls_date_format=’YYYYMMDD’ scope=spfile;

修改失败……..

在网上查阅了下,以以下方法成功修改:

运行regedit打开注册表,在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME下新增字串值NLS_DATE_FORMAT,值设置为你想修改的格式,如’YYYY-MM-DD HH24:MI:SS’,修改成功,无需重启任何服务。

SQL> select sysdate from dual;

 

SYSDATE

-------------------

2009-11-26 16:16:44

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10314474/viewspace-620661/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Table Lock
下一篇: Oracle Histograms
请登录后发表评论 登录
全部评论

注册时间:2009-10-09

  • 博文量
    87
  • 访问量
    345410