首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

设置oracle默认日期格式解决思路

2012-05-24 
设置oracle默认日期格式如果执行:alter system set nls_date_formatyyyy-mm-dd hh24:mi:ss报错:ORA-020

设置oracle默认日期格式
如果执行:
  alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss'
报错:
ORA-02096: 此选项的指定初始化参数不可修改

如果执行
  alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile
正确执行 但是时间格式根本没有改变 为什么?

scope这里牵扯到了spfile和pfile 之前没接触过 谁能通俗一点的讲讲spfile和pfile ?

[解决办法]
数据库重启之后才会改变…
[解决办法]
nls_date_format 是在会话级别进行修改的,也就是只是针对当前会话而言。
例如:alter session set nls_date_format='yyyy-mm-dd';
你再进行查询就是yyyy-mm-dd的格式显示了。
[解决办法]

探讨
引用:

数据库重启之后才会改变…


能说说spfile和pfile吗?通俗些

[解决办法]
如果执行:
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss'
报错:
ORA-02096: 此选项的指定初始化参数不可修改

如果执行
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile
正确执行 但是时间格式根本没有改变 为什么?

scope这里牵扯到了spfile和pfile 之前没接触过 谁能通俗一点的讲讲spfile和pfile ?
SQL code
-- 只能修改当前会话的 nls_date_format 参数值,alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';-- 要在系统级别修改的话,需要在注册表中添加字符串值,操作类似如下:在注册表中:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1添加一个字符串的值名称:NLS_DATE_FORMAT值 :YYYY-MM-DD HH24:MI:SS (你要的日期格式)修改后,无论用什么程序启动访问ORACLE,都会用这个设定显示格式,
[解决办法]
探讨

如果执行:
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss'
报错:
ORA-02096: 此选项的指定初始化参数不可修改

如果执行
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile
正确执行 但是时间格式根本没有改变 ……

[解决办法]
一般来说 scope 的选项有 spfile memory both 默认为both
没有 pfile
oracle 的启动方式 分为 pfile 以及spfile 。pfile就是参数文件(明文),spfile是二进制格式
oracle 9i以后推出的spfile方式启动。这样是为了便于管理参数。

数据库在默认的情况下, 如果有spfile,以spfile方式启动,如果没有spfile文件,那么以pfile方式启动

[解决办法]
学习,
[解决办法]
设置什么格式都一样吧,你拿出来格式化下就行
[解决办法]
楼主用的是alter system 
如果只要改变会话级的用alter session 就可以了。
另外scope 配置过struts1的话就知道
scope 是作用范围的意思。
分为 spfile 、memory 和both
spfile 是数据库启动时所要读取的参数。

[解决办法]
我印像是要改格式需要进注册表,你可以查下,不过建议你还是用to_date和to_char来使用,你不能每装一台服务器都要改吧,万一忘一个就有乐子了

热点排行