Oracle改變會話日期格式

2021-07-07 10:19:37 字數 1765 閱讀 1033

分類:

oracle 故障處理(13)

問題描述:在儲存過程中轉換時間的時候想要按著『yyyy-mm-dd』格式輸出,但是輸出結果不是這個格式,比如『2012-12-31』轉換輸出後是:『31-12月-12』

解決:alter session set nls_date_format=' || '''yyyy-mm-dd''

試了下,沒效果,我是直接在pl/sql裡設定的。然後執行儲存過程沒效果,弄了半天,沒解決。正要放棄的時候,突然靈感一來,我把這句話加到了儲存過程裡,o了。這個應該是設定會話或者直接更改伺服器語言設定。

***********************************====分割*********************************************=

ora-01861: literal does not match format string

一般來說這個錯誤是因為資料庫語言照成格式化異常

首先檢視你傳輸的資料的格式是否和資料庫匹配

如果還不行在檢視你資料的語言(

檢視資料的sql語句為 select * from v$nls_parameters)

[, , , 

, , , ,

這個標識資料庫date型別的格式

,  看下此處的編碼格式這個表示date型別的編碼格式

,  還有次數的格式這個表示你資料庫的字元編碼格式

, ,, , ,

, , 

, , 

]oracle中 nls_date_format的設定方法

oracle日期格式預設為:dd-mon-yy,以下是3種方法可以修改使之永久生效;

1、修改glogin.sql檔案,這個檔案的路徑為:

windows下:

%oracle_home\sqlplus\admin\

unix下:

$oracle_home/sqlplus/admin/

在檔案中加入:

alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

2、修改登錄檔(windows平台)

開始-->執行-->regedit-->hkey_local_machine-->software-->oracle-->key_oradb10g_home1

新建字串值:

nls_date_format,並設定其值為:yyyy-mm-dd:hh24:mi:ss

3、修改使用者環境變數(unix平台)

export nls_date_format =american

export nls_date_format ='yyyy-mm-dd hh24:mi:ss'

rman會話中設定nls_date_format 和nls_lang

run {

sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss";

sql 'alter session set nls_lang ="american";

Oracle日期格式

日期處理完全版 to date格式 day dd number 12 dy abbreviated fri day spelled out friday ddspth spelled out,ordinal twelfth month mm number 03 mon abbreviated mar...

Oracle 日期格式

oracle 獲取當前時間的月份 select extract year from sysdate from dual oracle 日期引數 今天 select to char sysdate,yyyy mm dd from dual 昨天 select to char sysdate 1,yyy...

Oracle日期格式

sysdate 2008 12 29 08 27 格式marsk 回傳格式 demo 結果y yy yyy 西元年最後一位數,兩位數,三位數 select to char sysdate,yyy from dual 008year 拼寫出西元年 select to char sysdate,year...