当前位置:数据库 > Oracle >>

Oracle改变会话日期格式

Oracle改变会话日期格式
 
问题描述:在存储过程中转换时间的时候想要按着‘yyyy-mm-dd’格式输出,但是输出结果不是这个格式,比如‘2012-12-31’转换输出后是:‘31-12月-12’
 
解决:查了半天的资料都不多说,搜索关键字没找对,中间好不容易找到一个相同问题帖子,有层主就只说了句直接设置ALTER SESSION SET NLS_DATE_FORMAT=' || '''YYYY-MM-DD''
 
试了下,没效果,我是直接在PL/SQL里设置的。然后运行存储过程没效果,弄了半天,没解决。正要放弃的时候,突然灵感一来,我把这句话加到了存储过程里,O了。可能是我
 
笨没明白前面层主说的意思。有个问题,格式里有两个竖线,不知道有什么作用,也没去试。
 
execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT=' || '''DD-MON-RRRR''';
       execute immediate 'ALTER SESSION SET NLS_DATE_LANGUAGE=' || '''AMERICAN''';
(3)linux 下:oracle用户编辑 .bash_profile下 加入以下内容
       export  NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS '
       重新登录即可生效
 
    (4)用sysdba登录
然后更新props$这个表里的字段即可
update props$ set value = 'YYYY-MM-DD HH24:MI:SS' where parameter = 'NLS_DATE_FORMAT';
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,