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中被識別爲一個簡單的語句。 –