Oracle数据库当前的nls_date_format参数值查询及设置

来源:互联网 发布:中建八局 知乎 编辑:程序博客网 时间:2024/05/18 02:28

来源:http://blog.sina.com.cn/s/blog_ebc0660c0102v969.html

1、查询nls_date_format

1)select * from nls_session_parameters where parameter = 'NLS_DATE_FORMAT';
显示:NLS_DATE_FORMAT 
   DD-MON-RR
2)select * from nls_database_parameters where parameter = 'NLS_DATE_FORMAT';
显示:NLS_DATE_FORMAT    DD-MON-RR
3)select * from nls_instance_parameters where parameter = 'NLS_DATE_FORMAT';
显示:NLS_DATE_FORMAT    null  (在我本地nls_instance_parameters中没有设置NLS_DATE_FORMAT)


2、设置nls_date_format
1)首先,介绍一下NLS参数相关的NLS_SESSION_PARAMETERS/NLS_DATABASE_PARAMTERS/NLS_INSTANCE_PARAMETERS三个视图。
    NLS参数分session/ instance/ database三个级别
    session级别覆盖instance级别,instance级别覆盖database级别。就是说,如果session级别、instance级别和database级别都给某个参数赋值了,如nls_date_format参数,则先看session级别、如果session级别没有设定值,则看instance级别,以此类推。
2)其次,设定nls_date_format的值
    session级别设定值:
        alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';设定之后再查询会发现nls_session_parameters视图中nls_date_format的值已经变了,而nls_instance_parameters、nls_database_parameters视图中的值没有变。
        SESSION级别——如果只是希望自己看到某种格式而不影响其他人看到的结果。
    instance级别设定值:
        alter system set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';此级别的值在oracle9i以后就不允许设定了,所以本地设定不了。
    database级别设定值:
        oracle不允许设定此级别的参数值,也没有提供设定语句。
3)然后,我们可以通过以下查询,发现本数据库是不允许instance级别和database级别参数值更改的
    select name, isses_modifiable, issys_modifiable, isinstance_modifiable from v$parameter where name = 'nls_date_format';
    显示:nls_date_format    TRUE    FALSE    FALSE
    发现:isses_modifiable=TRUE、issys_modifiable=FALSE、isinstance_modifiable=FALSE的
0 0
原创粉丝点击