close

1-4、dual的運用

雖然資料庫具有相當強的查詢語法,上個章節中的Select語法,主要是在查詢資料庫內已存在的資料,但若今天所要查詢的資料,並不存在於資料庫中時,那又要怎麼辦呢?
在Oracle中,有一個十分好用的虛擬資料表,其名稱為dual,dual是一個只具有一個欄位的虛擬資料表,使用者在使用時,可別給予兩個以上的欄位哦!其語法如下:

select 所要回傳資料的內容 from dual;

例:select '員工姓名' from dual; Ans: 員工姓名

相信大家看了以上的範例後,一定還是不知要如何使用它,接下來筆者使用三個例子來說明。

 

例一:

小明的主管,一進辦公室,便要小明幫他查一下,ASCII碼65是那個字,身邊並無對照表的小明,本要上網查詢,但發現現公司的網路剛好斷線,此時的他,忽然想到電腦上有安裝Oracle,於是便在Oracle的SQL Plus上,鍵入以下的指令
select chr(65) from dual;
因此小明便可知ASCII碼所對應的字,便是大寫A了

例二:

正在看公司客戶基本資料的主管,忽然看到一個地址十分之長,要開立table欄位長度的主管,為了避免欄位不足,因此拿給小明,要小明算一下長度,小明為怕錯誤,因此再使用SQL Plus鍵入以下指令。
select lengthb('台灣省台南市安南區海佃路二段XXX巷XX弄XX號XX樓之X') from dual;
因此小明可計算出該地址的欄位長度為46個bytes。

例三:

主管想要知道,65天後的日期為幾月幾日,於是小明便又下了如下指令:
select to_char(sysdate+65, 'yyyy-mm-dd') from dual;
因此小明便可將所傳回的結果告訴主管了。

 

以上三個例子,只是為了讓大家了解,dual的運用,在例子中所提到的chr、lengthb、to_char及sysdate將日後有整理到再來說明。

 

1-5、回傳資料

此章節我們將常用的回傳字元做個簡易的介紹。

1-5-1、回傳字元的字元函數

chr(n)

n為ASCII數值,傳回該數值對應文字

例: select chr(67) from dual; Ans:C

lpad(t1,n,t2)

在字串長度n的左方,以文字t2填滿。

例: select lpad('LPAD', 8, '-') from dual; Ans:----LPAD

ltrim(t)

去除字串左邊的空白字元

select ltrim(' LTRIM') from dual; Ans:LTRIM

rpad(t1,n,t2)

在字串長度n的右方,以文字t2填滿。

select rpad('RPAD', 8, '-') from dual; Ans:RPAD----

rtrim(t)

去除字串右邊的空白字元

select rtrim('LTRIM ') from dual; Ans:LTRIM

substr(t,m,n)

在t字串中從第m字元,取n個字元

select substr('字元substr', 6, 2) from dual; Ans:st

substr(t,m)

在t字串中從第m字元,取至最後一個字元

select substr('字元substr', 6) from dual; Ans:str

substrb(t,m,n)

以byte方式在t字串中從第m字元,取n個字元

select substrb('字元substr', 6, 2) from dual; Ans:bs

substrb(t,m,n)

以byte方式在t字串中從第m字元,取至最後一個字元

select substrb('字元substr', 6) from dual; Ans:bstr

trim(t)

去除字串t的左、右空白字元

select trim(' TRIM ') from dual; Ans:TRIM


arrow
arrow
    全站熱搜

    Condy Lin 發表在 痞客邦 留言(0) 人氣()