我想确保每次登录时日期格式都从'24-Apr-2014'
更改为'24/04/2014'
为此我创建了一个pl / sql触发器,如下所示
CREATE OR REPLACE TRIGGER CHANGE_DATE_FORMAT
AFTER LOGON ON DATABASE
BEGIN
ALTER SESSION SET NLS_DATE_FORMAT = 'MM/DD/YYYY';
END;
/
但是我没有以sysdba身份登录,所以也许这就是我收到错误的原因
SQL> @C:/pl/dateTrigger.sql AFTER LOGON ON DATABASE * ERROR at line 2: ORA-01031: insufficient privileges
如何确保永久更改日期格式?
答案 0 :(得分:1)
您的错误意味着您不能创建此类触发器。但是你走错了路。您必须在数据库级别设置默认值。
使用初始化参数
NLS_DATE_FORMAT
显式或使用初始化参数NLS_TERRITORY
隐式指定默认日期时间格式模板。您可以使用ALTER SESSION
语句更改会话的默认日期时间格式。
然后,对于您的情况,必须在database initialization parameters。
中设置此格式要检查当前会话中是否有正确的值:
select value from v$parameter where upper(name)='NLS_DATE_FORMAT';