设置oracle默认日期格式

KG071 2011-08-16 08:20:31
如果执行:
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 ?
...全文
1537 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dn503290694 2012-05-17
  • 打赏
  • 举报
回复
修改注册表也不管用啊,而且是重启过电脑的。
zhangra 2011-12-26
  • 打赏
  • 举报
回复
还是查询的时候改格式好。
新丁11111 2011-08-22
  • 打赏
  • 举报
回复
我印像是要改格式需要进注册表,你可以查下,不过建议你还是用to_date和to_char来使用,你不能每装一台服务器都要改吧,万一忘一个就有乐子了
yuyeyi 2011-08-21
  • 打赏
  • 举报
回复
楼主用的是alter system
如果只要改变会话级的用alter session 就可以了。
另外scope 配置过struts1的话就知道
scope 是作用范围的意思。
分为 spfile 、memory 和both
spfile 是数据库启动时所要读取的参数。
GIS__ 2011-08-18
  • 打赏
  • 举报
回复
设置什么格式都一样吧,你拿出来格式化下就行
Alessandro_ 2011-08-18
  • 打赏
  • 举报
回复
学习,
huangdh12 2011-08-17
  • 打赏
  • 举报
回复
一般来说 scope 的选项有 spfile memory both 默认为both
没有 pfile
oracle 的启动方式 分为 pfile 以及spfile 。pfile就是参数文件(明文),spfile是二进制格式
oracle 9i以后推出的spfile方式启动。这样是为了便于管理参数。

数据库在默认的情况下, 如果有spfile,以spfile方式启动,如果没有spfile文件,那么以pfile方式启动
KG071 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 luoyoumou 的回复:]

引用 8 楼 luoyoumou 的回复:

如果执行:
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=spfil……
[/Quote]

alter session 我知道只是在一次会话中修改格式 我希望是长期的

网上不是说修改spfile,就是执行这句:
alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
就能改变 格式的 但是我重启了没效果啊

必须到注册表下改?
luoyoumou 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 luoyoumou 的回复:]

如果执行:
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
正确执行 但是时间格式根本没有改变 ……
[/Quote]

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
luoyoumou 2011-08-17
  • 打赏
  • 举报
回复
如果执行:
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 hh24:mi:ss';

-- 要在系统级别修改的话,需要在注册表中添加字符串值,操作类似如下:

在注册表中:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1

添加一个字符串的值
名称:NLS_DATE_FORMAT
值 :YYYY-MM-DD HH24:MI:SS (你要的日期格式)


修改后,无论用什么程序启动访问ORACLE,都会用这个设定显示格式,
yixilan 2011-08-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kg071 的回复:]
引用 1 楼 njlywy 的回复:

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


能说说spfile和pfile吗?通俗些
[/Quote]
spfile是二进制文件,看不懂;
pfile是文本文件,可以打开,可以看;
如果直接修改pfile,则需要Oracle重启后,才能生效。
虫洞 2011-08-16
  • 打赏
  • 举报
回复
windows系统可以直接设置环境变量
添加变量nls_date_format,值为YYYY-MM-DD HH24:MI:SS
KG071 2011-08-16
  • 打赏
  • 举报
回复
alert 日志在哪里?
KG071 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 njlywy 的回复:]

数据库重启之后才会改变…
[/Quote]

能说说spfile和pfile吗?通俗些
KG071 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bearfishshow 的回复:]

nls_date_format 是在会话级别进行修改的,也就是只是针对当前会话而言。
例如:alter session set nls_date_format='yyyy-mm-dd';
你再进行查询就是yyyy-mm-dd的格式显示了。
[/Quote]

我希望是改变系统的属性 而不是一次会话中
灰哥 2011-08-16
  • 打赏
  • 举报
回复
nls_date_format 是在会话级别进行修改的,也就是只是针对当前会话而言。
例如:alter session set nls_date_format='yyyy-mm-dd';
你再进行查询就是yyyy-mm-dd的格式显示了。
njlywy 2011-08-16
  • 打赏
  • 举报
回复
数据库重启之后才会改变…

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧