2017-10-09 27 views
0

如目前在Oracle中默認的日期格式爲DD-MON-YY:更改數據庫的日期格式永久

10-SEPT-17 

我想更改Oracle日期格式永久設置爲Monddyyyy HH12:MI:SS時,這是由於傳統計劃SQL INSERT語句寫在這樣的方式,因此,我想換以下格式例如:

SEPT102017 06:52:00 pm 

我試過用alter會議,但它不工作對我的應用程序的SQL,請告知哪種方法能夠做到這一點

+4

該方法是錯誤的。數據庫無法適應您的應用程序的SQL,反之亦然。更改默認的日期格式可能會造成更多的問題。更改SQL並在所有日期時間操作上使用TO_DATE()函數。 –

+0

您還可以通過環境變量和/或註冊表設置在客戶端上設置默認值。 –

+0

請顯示您的代碼。如果ALTER SESSION不起作用,那麼你的代碼有問題 –

回答

1
改變

如果你不想使用ALTER SYSTEM(按BA's answer),您可以創建一個登錄觸發器來改變會話參數:

CREATE OR REPLACE TRIGGER CHANGE_DATE_FORMAT 
AFTER LOGON ON DATABASE 
CALL DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','"MONDDYYYY HH12:MI:SS AM"') 
/
+0

選擇你的答案是更好的方法,因爲它更好,更易於管理,而Alter SYSTEM難以遷移/配置爲新的環境 – TinyIss

3

您可以使用命令來改變它的會話

ALTER SESSION SET NLS_DATE_FORMAT='Monddyyyy hh12:mi:ss' 

但是,如果你不能做到這一點,從您的應用程序中,你可以通過改變系統默認

ALTER SYSTEM SET NLS_DATE_FORMAT='Monddyyyy hh12:mi:ss' scope=both 
+0

我想用Alter系統,但是我得到這個指定的初始化參數是該選項無法修改。有沒有其他方法來更改系統默認日期格式? – TinyIss

+0

通常這個參數可以使用'alter system'來設置。看看這個帖子,用pfile改變spfile:http://www.orafaq.com/node/5 –