1
更改默认的日期格式我想确保我每次登录的日期格式时间从'24-Apr-2014'
变更为'24/04/2014'
PL/SQL触发器在Oracle
对于我创建了一个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
我该怎么做才能确保日期格式永久更改?
嗨法齐尔,你能否详细说明这一点。 如何登录?例如使用SQL Plus等。 因为,只需使用 connect sys/pwd as sysdba命令 –
'nls_date_format'通常是在客户端上设置的东西。是否有理由不能/不想将其作为客户端配置?你是说你没有,也不能获得在数据库中创建登录触发器的权限?而且,退后一步,你想解决什么问题?当人们过分关注'nls_date_format'时,通常意味着应用程序不正确地依赖于隐式字符串到日期的转换。 –
另外,你可以考虑在'login.sql'用户配置文件中设置它,如果它只适合你,或者'glogin.sql'站点配置文件(如果它适用于所有本地命令行用户)。请记住,登录触发器将应用于所有客户端,而不仅仅是SQL * Plus - 例如包括JDBC,这可能会导致混淆。除非您有选择地将其应用于触发器本身,所有用户。您还必须使用'execute immediate'来运行'alter session'命令,它不会在PL/SQL中被识别为一个简单的语句。 –