Oracle数据库当前的nls
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的