和其他的關(guān)系型數(shù)據(jù)庫(kù)一樣, oracle 中也能進(jìn)行一些隱式的數(shù)據(jù)轉(zhuǎn)換,這對(duì)我們寫 SQL 語(yǔ)句有 非常 用,我們可以不必麻煩地手動(dòng)轉(zhuǎn)化很多類型的字符。雖然前面我們介紹了一些使用例如to_char,to_date的函數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)換的方法,但是隱式轉(zhuǎn)換也還是不錯(cuò)的。 Orac
和其他的關(guān)系型數(shù)據(jù)庫(kù)一樣,oracle中也能進(jìn)行一些隱式的數(shù)據(jù)轉(zhuǎn)換,這對(duì)我們寫SQL語(yǔ)句有非常用,我們可以不必麻煩地手動(dòng)轉(zhuǎn)化很多類型的字符。雖然前面我們介紹了一些使用例如to_char,to_date的函數(shù)進(jìn)行強(qiáng)制轉(zhuǎn)換的方法,但是隱式轉(zhuǎn)換也還是不錯(cuò)的。
Oracle可以隱式地進(jìn)行一些變量類別之間轉(zhuǎn)化,例如從字符串轉(zhuǎn)換到數(shù)值,看下面的例子。
SQL> select ename,sal from emp where sal = ‘1100′; ENAME SAL ——————– ———- SMITH 1100 ADAMS 1100
這里用了對(duì)員工的工資進(jìn)行了選擇,我們明知道員工的工資是數(shù)值型的,但我們故意把他寫成了字符串型的。結(jié)果oracle仍然得到了正確的結(jié)果。這說(shuō)明oracle進(jìn)行了隱式的從字符串到數(shù)值直接的轉(zhuǎn)換。
再比如下面的例子。
SQL> Select last_day(’26-4月 -08′) from dual; LAST_DAY(’ ———- 30-4月 -08
select sysdate from dual
這條SQL語(yǔ)句返回的結(jié)果來(lái)查看你的機(jī)器到底是什么日期格式。一般這個(gè)和NLS_lang參數(shù)的值有關(guān)
這兩個(gè)例子都說(shuō)明了oracle內(nèi)部確實(shí)能進(jìn)行某些隱式的函數(shù)轉(zhuǎn)換。下面是oracle中隱式轉(zhuǎn)換的一般情況。
從 |
到 |
Varchar2 or Char |
Number |
Varchar2 or Char |
Date |
Number |
Varchar2 |
Date |
Varchar2 |
需要注意的就是從Varchar2、char到date的隱式轉(zhuǎn)換過(guò)程中,必須保證其格式是本機(jī)的默認(rèn)時(shí)間格式。
除了隱式轉(zhuǎn)換以外,oracle還提供了更為靈活的數(shù)據(jù)類型的顯示轉(zhuǎn)換,這種轉(zhuǎn)換方式更為靈活。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com