ORACLE NLS_DATE_FORMAT设置

 

最近在ORACLE里面设置NLS_DATE_FORMAT日期时间格式时遇到了一些问题,顺便整理一下。以防以后忘记时,能顺速翻阅。

 

 

1:在会话级别设置nls_date_format对应的日期格式。

 

使用alter session set nls_date_format='xxxx'设置只会影响当前会话的。这个对所有工具(SQL*Plus、SQL Developer)都能生效。

 

 

SQL> select sysdate from dual;
 
SYSDATE
---------
14-SEP-17
 
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
 
Session altered.
 
SQL> select sysdate from dual;
 
SYSDATE
-------------------
2017-09-14 08:33:17
 
SQL> 

 

 

2:如果只是SQL*Plus,可以在SQL*Plus的环境变量设置文件login.sql或glogin.sql中来设置。

 

SQL*Plus启动的时候首先会先运行glogin.sql脚本,然后查找当前目录下是否存在login.sql文件,如果找到则运行该脚本,如果当前目录不存在login.sql.则查找是否设置了SQLPATH环境变量,找到了就会去执行该环境变量路径下的login.sql脚本,否则则会停止继续查找。 glogin.sql文件位于$ORACLE_HOME/sqlplus/admin下.可以在glogin.sql文件下增加一条语句alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

 

 

 

 

3:修改数据库的参数,需要重启数据库后生效  

 

 

 

SQL> show parameter nls_date_format;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_date_format                      string
SQL> alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
 
System altered.
 
SQL> 

 

这个是全局的,有时候影响非常大,所以必须格外小心,要确保不影响各个系统和应用的前提下修改!

 

 

 

 

4:修改Linux环境变量,在环境变量中设置日期格式。

 

 

注意:环境变量NLS_DATE_FORMAT必须和NLS_LANG一起设置,否则不会生效(这个才是总结这篇文章的初衷,以前一直没有注意这个问题)。可以直接在会话窗口使用export或.bash_profile配置文件(全局应用)设置。

 

下面我们来测试一下看看,如下所示:

 

[oracle@DB-Server ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:40:48 2017
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL> select sysdate from dual;
 
SYSDATE
---------
13-SEP-17
 
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@DB-Server ~]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
[oracle@DB-Server ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:41:22 2017
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL> select sysdate from dual;
 
SYSDATE
---------
13-SEP-17
 
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@DB-Server ~]$ export NLS_LANG=AMERICAN
[oracle@DB-Server ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:41:50 2017
 
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL> select sysdate from dual;
 
SYSDATE
-------------------
2017-09-13 09:41:58
 
SQL> 
时间: 2024-10-23 13:26:08

ORACLE NLS_DATE_FORMAT设置的相关文章

Oracle全文索引设置步骤

已有几个项目组开始使用oracle的全文索引.Oracle的词法分析器针对ZHS16GBK字符集的词法分析尚不够智能,只能机械地以字为单元进行匹配.对于utf8字符集的数据库有一个新的汉语分析器chinese_lexer,效率有了很大改善.现将验证并整理过的如何进行oracle全文索引设置的文档发给大家,适用于8i.9i各平台版本. 对于DB2,有一个叫做TIE(Text Information Extend)的插件可以实现全文索引,不过据说它的语法分析也很原始.据介绍使用CM(Content

关于Oracle数据库设置数据库的触发器的问题

问题描述 关于Oracle数据库设置数据库的触发器的问题 可否设置一个触发器,当新建数据的时候,自动将这个数据的ID存入到另一个外键关联表中 解决方案 Oracle数据库中有关触发器问题Oracle数据库中的触发器数据库触发器----ORACLE 解决方案二: 可以,对该表的insert语句建立触发器,在触发器里进行另一张表的insert. 解决方案三: 当然可以,触发的事件即为insert

Oracle Arraysize设置对于逻辑读的影响实例分析_oracle

当执行一条SQL查询的时候,为了获得满足的数据,查询在这个过程中完成解析,绑定,执行和提取数据等一系列步骤,这些步骤都是单独执行的,满足条件的数据行必须由数据库返回给应用:对于任何大小的结果集,需要返回的数据行很可能不是在一次往返调用过程中传递给应用的! 每次调用过程中,数据库与客户端之间的往返回路数将一定层次上影响总的响应时间,其中除了提取数据(FETCH)步骤,其余步骤(解析,绑定,执行)都只执行一次,这也是必要的,Oracle需要获得满足查询条件的所有数据结果从而执行多次提取操作. 关于提

Oracle SqlPlus设置Login.sql的技巧_oracle

sqlplus在启动时会自动运行两个脚本:glogin.sql.login.sql这两个文件 执行顺序为 1.默认在在$ORACLE_HOME/sqlplus/admin路径下查找glogin.sql文件执行 2.默认在在当前路径下查找login.sql文件执行,若未查找到对应文件则执行3 3.判断是否设置SQLPATH环境变量,如果设置了该变量则在对应路径下查找并执行,未找到则停止查找 可以在login.sql文件中加入一些常用设置使用SQLPLUS时更便捷,以下试验在ORACLE 11.2.

PB7 连接 Oracle 的设置方法_oracle

正在看的ORACLE教程是:PB7 连接 Oracle 的设置方法.  系统环境: 1.操作系统:Windows 2000 2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版 3.安装路径:C:\ORACLE 访问方法: 1.首先安装好Oracle客户端应用程序,确保Oracle网络连通 配置C:\Oracle\Ora81\network\ADMIN\tnsnames.ora文件, 创建连接到服务器的数据库别名 注: 服务器端Oracle数据库实例名:oradb 服务器

LINUX下如何为ORACLE数据库设置hugepage

在Linux中配置hugepage可以提高oracle的性能,减少oracle sga的页交换,类似于aix中的lagepage. 为什么 使用大页? LINUX内存的默认块大小是4K 如果SGA为:128G select 128*1024*1024/4 from dual;33554432个(三千多万), select 128*1024/2 from dual; 65536个 每个内存页,有一个页表项(大概10个字节),记录页的状态.位置 默认块大小是4K时--页表大小:320M. 在大页下2

Oracle的设置系统全局区SGA命令

今天简单介绍一下 target="_self">SGA 的设置方法 1.sga_target 参数 alter system set sga_target = 40000m  scope=both; 特性: 1).ASMM 自动共享内存管理 答:SGA_TARGET参数控制ASMM(自动共享内存管理)是oracle一个新特性,但是它的含义和SGA_MAX_SIZE的一样,也表示SGA最大的大小,于是它也就有了一个限制,那就是它的大小不能大于SGA_MAX_SIZE的大小,一旦给S

Oracle关于设置SQLPLUS提示符样式的方法

大家在日常工作中,我想99%都是用到sqlplus来登陆数据库,对数据库进行管理.调优.配置.那么如果有很多台数据库的时候,我们在连接后全部是统一的SQL>,就有可能发生目前不知道连接那个库上了,当我们切换用户很频繁的时候也有可能不清楚当前在使用的是那个用户,下面我就给大家介绍一下,如何配置sqlplus的登陆配置文件 系统:RedHat Linux 5.4 数据库:oracle 10G 工具:sqlplus 一.全局模式 什么叫全局模式呢:当我们配置完sqlplus登陆配置文件后,无论在哪个目

Linux下开机自动启动Oracle的设置方法

上周五,因为办公室突然停电,服务器重启后,数据库并没有跟着重启,我才发现原来所有的数据 库都没有设置开机自动重启,为了防止以后三更半夜服务器重启时,不会有电话把我从睡梦中吵醒,让 我手动启动数据库,我决定花点时间研究下Oracle随Linux自动重启的设置,具体方法如下: 1. 修改oratab (root用户执行) /etc/oratab的配置格式如下: $ORACLE_SID:$ORACLE_HOME:Y 2. 测试dbstart, dbstop(oracle用户执行) 设置ORACLE_H