Oracle数据库当前的nls_date_format参数值查询及设置
来源: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的
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。