Oracle cast函式對使用者資料進行型別轉換

2021-09-10 01:10:43 字數 1829 閱讀 9298

一、cast函式

cast函式的作用是對使用者輸入的資料進行資料型別轉換,比如使用者資料的資料時number型別,小數字數是3位,我們可以將使用者資料轉換成整形資料int型別。

cast函式的格式是cast(資料來源 as 待轉換的資料型別)

比如我需要將number資料型別的13.658轉換成int型別的整數型別

sql> select cast(13.658 as int) from dual;

cast(13.658asint)

通過上圖我們可以看見,cast對number資料型別的資料進行四捨五入操作後儲存成整形資料;

上面的效果類似於round函式。

但是cast函式作用的結果並不作用於資料庫表結構,僅僅使用者資料顯示。舉例如下:

--info表的資料記錄如下:

sql> select * from info;

sno sname

1 lilei

2 dushuai

3 caolirong

--info表字段結構

desc info    

name type      nullable default comments 

sno integer                           

sname varchar2(20) y               

--我們使用cast函式對sno欄位進行資料型別轉換,轉換成number(8,4)

sql> select cast(sno as number(8,4)) from info;

cast(snoasnumber(8,4))

1.0000

2.0000

3.0000

--但是重新查詢info表,結果如下

sql> select * from info;

sno sname

1 lilei

2 dushuai

3 caolirong

--使用update函式進行info表更新

sql> update info set sno=cast(sno as number(3,2)) where sno=1;

1 row updated

sql> commit;

--重新查詢info表,結果如下

sql> select * from info;

sno sname

1 lilei

2 dushuai

3 caolirong

如果想利用cast函式實現資料型別的轉換,可以考慮在基表的基礎上建立檢視或者新建另外一張表的方式。下例為在基表的基礎上建立檢視進而實現改變資料型別的目的:

sql> create or replace view v_info as select cast(sno as number(3,2)) as v_sno from info;

view created

sql> select * from v_info;

v_sno

1.00

2.00

3.00

sql> desc v_info;

name type     nullable default comments 

v_sno number(3,2) y                        

sql> desc info

name type      nullable default comments 

sno integer                           

sname varchar2(20) y             

原文出處:

對勾函式 對勾函式

對勾函式是一種類似於反比例函式的一般函式。所謂的對勾函式,是形如 f x ax b x 的函式,是 一種教材上沒有但考試老喜歡考的函式,所以更加要注意和學習。一般的函式影象形似兩個中心對稱的 對勾,故名。當x 0 時,f x ax b x 有最小值 這裡為了研究方便,規定a 0 b 0 也就是當 x...

thinkphp對使用者管理

退出操作 public function quit 密碼修改 public function login if user info password md5 password session user info user info this success 登入成功 u index index 後台...

對使用者應答 1,2,3

控制器 的一部分工作是響應使用者。有三個基本方式來完成個工作 1 最通用的方式是提交乙個模板。在mvc 圖中,模板是 檢視 它從 控制器 獲得 資訊並使用 控制器 來生成乙個對瀏覽器的應答。2 控制器 可以直接返回乙個字串給瀏覽器而不是呼叫乙個 檢視 這很少使用,但可用於傳送乙個錯誤資訊。3 控制器...