oracle—隱式和顯式轉換

今天在做051的96題時遇見了NVL2(exp 1,exp 2,exp 3)這個函數,他需要三個參數,其中exp 1 可以是任何數據類型,而exp 2和exp 3 數據類型有時會出現不一致,這是oracle就會進行隱式轉換。


隱式數據類型轉換將按照下面說明的規則進行。
顯式數據類型轉換可通過使用轉換函數來執行。轉換函數用於將一種數據類型的值轉換爲另一種數據類型的值。
通常,函數名稱的格式遵循data type TO data type慣例。
第一個數據類型是輸入數據類型,第二個數據類型是輸出數據類型。
注:儘管可以使用隱式數據類型轉換,但仍建議執行顯式數據類型轉換以確保 SQL 語句的可靠性。
 
隱式數據類型轉換
在表達式中,Oracle Server 可以自動執行以下轉換:
從 VARCHAR2 或CHAR隱式轉換爲NUMBER
從VARCHAR2 或CHAR隱式轉換爲DATE
 
Oracle Server  可以在表達式中自動執行數據類型轉換。例如,表達式hire_date > '01-JAN-90' 將導致字符串'01-JAN-90' 隱式轉換爲一個日期。因此,表達式中的VARCHAR2 或CHAR 值可以隱式轉換爲數字或日期數據類型。
 
對於表達式計算,Oracle Server 可以自動執行以下轉換:
從NUMBER隱式轉換爲VARCHAR2 或CHAR
從 DATE隱式轉換爲VARCHAR2 或CHAR
 
通常,Oracle Server  在需要進行數據類型轉換時使用適用於表達式的規則。例如,表達式grade = 2 將導致數字2 隱式轉換爲字符串“2”,因爲grade  爲CHAR(2)列。
注:只有字符串代表一個有效數字時,CHAR 到NUMBER 的轉換才能成功。
 
 
顯式數據類型轉換
SQL 提供了以下三種函數,用於將值從一種數據類型轉換爲另一種數據類型:
 
 
 
TO_CHAR( number | date,[  fmt ],[nlsparams]) 
按照格式樣式  fmt ,將數字或日期值轉換爲 VARCHAR2   字符串。 
數字轉換:nlsparams  參數指定以下由數字格式元素返回的字符: 
-- 小數點字符 
--組分隔符 
--本地貨幣符號 
--國際貨幣符號 
如果省略  nlsparams  或者任何其它參數, 則該函數將在會話中使用默認參數值。 
日期轉換:nlsparams  參數指定返回的月 和日名稱以及縮寫所用的語言。如果省略此 參數,則該函數將在會話中使用默認的日期 語言。
TO_NUMBER(char,[fmt], [nlsparams] )
按照可選格式樣式  fmt   指定的格式,將包含數字的字符串轉換爲數字。 
對於數字轉換,nlsparams 參數在此函數中的作用與它在  TO_ CHAR  函數中的作用相同。
TO_DATE(char ,[fmt ],[ nlsparams])
按照指定的  fmt ,將代表日期的字符串轉換 爲日期值。如果省略  fmt ,則格式爲  DD-MON-YY 。 
對於日期轉換,nlsparams 參數在此函數中的作用與它在  TO_ CHAR  函數中的作用相同。

發佈了19 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章