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 |
留言
張貼留言