亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會員 設(shè)為首頁 | 收藏本站
當(dāng)前位置 : 首頁>軟件學(xué)院>數(shù)據(jù)庫>ORACLE>正文
 
Oracle PL/SQL中如何使用%TYPE和%ROWTYPE

http://www.yibo1263.com 2008/4/22 9:51:09  來源:不詳  編輯:葉子
 

1. 使用%TYPE

  在許多情況下,PL/SQL變量可以用來存儲在數(shù)據(jù)庫表中的數(shù)據(jù)。在這種情況下,變量應(yīng)該擁有與表列相同的類型。例如,students表的first_name列的類型為VARCHAR2(20),我們可以按照下述方式聲明一個(gè)變量:

DECLARE

       v_FirstName VARCHAR2(20);

但是如果first_name列的定義改變了會發(fā)生什么(比如說表改變了,first_name現(xiàn)在的類型變?yōu)閂ARCHAR2(25))?那就會導(dǎo)致所有使用這個(gè)列的PL/SQL代碼都必須進(jìn)行修改。如果你有很多的PL/SQL代碼,這種處理可能是十分耗時(shí)和容易出錯(cuò)的。

這時(shí),你可以使用”%TYPE”屬性而不是將變量類型硬性編碼。

例如:

DECLARE

       v_FirstName students.first_name%TYPE;

  通過使用%TYPE,v_FirstName變量將同students表的first_name列的類型相同(可以理解為將兩者邦定起來)。

  每次匿名塊或命名塊運(yùn)行該語句塊以及編譯存儲對象(過程、函數(shù)、包、對象類和觸發(fā)器)時(shí),就會確定該類型。

  使用%TYPE是非常好的編程風(fēng)格,因?yàn)樗沟肞L/SQL更加靈活,更加適應(yīng)于對數(shù)據(jù)庫定義的更新。

2. 使用%ROWTYPE

2.1 PL/SQL記錄

PL/SQL記錄類型類似于C語言中的結(jié)構(gòu),是一種復(fù)合類型,是用戶自定義的。

記錄提供了一種處理獨(dú)立的但又作為一個(gè)整體單元相關(guān)的變量的機(jī)制。請看:

DECLARE

       v_StudentID NUMBER(5);

       v_FirstName VARCHAR2(20);

       v_LastName VARCHAR2(20);

  這3個(gè)變量在邏輯上是相互關(guān)聯(lián)的,因?yàn)樗麄冎赶騭tudents表中不同的字段。如果為這些變量聲明一個(gè)記錄類型,那么他們之間的關(guān)系就十分明顯,可作為一個(gè)單元進(jìn)行處理。

DECLARE

    /*Define a record type to hold common student informationi*/

       TYPE t_StudentRecord IS RECORD(

              StudentID NUMBER(5),

              FirstName VARCHAR2(20),

              LastName VARCHAR2(20);

       /*Declare a variable of this type.*/

       v_StudentInfo t_StudentRecord;

2.2 記錄賦值

       可以用SELECT語句向記錄賦值,這將會從數(shù)據(jù)庫中檢索數(shù)據(jù)并將該數(shù)據(jù)存儲到記錄中。注意的是,記錄中字段應(yīng)該和查詢結(jié)果列表中的字段相匹配。

SELECT studentID,firstName,lastName

into v_StudentInfo

from students where studentID=32;

2.3 使用%ROWTYPE

  在PL/SQL中將一個(gè)記錄聲明為具有相同類型的數(shù)據(jù)庫行的作法是很常見的。PL/SQL提供了%ROWTYPE運(yùn)算符,使得這樣的操作更為方便。

例如:

DECLARE

       v_RoomRecord rooms%ROWTYPE;

將定義一個(gè)記錄,該記錄中的字段將與rooms表中的列相對應(yīng)。

收藏】【打印】【進(jìn)入論壇
  相關(guān)文章:

·Oracle企業(yè)管理器增強(qiáng)對Oracle融合中間件的
·Oracle企業(yè)管理器可管理Oracle VM服務(wù)器虛擬
·新版Oracle企業(yè)管理器降低應(yīng)用管理成本
·Oracle商務(wù)智能應(yīng)用軟件推出新功能
·Oracle iGovernment即將亮相甲骨文大會
·‘芯’動力,新極限 甲骨文在沈陽發(fā)布全新O
·Oracle 復(fù)制方法逐步精細(xì)
·教你簡便實(shí)現(xiàn)Oracle數(shù)據(jù)庫文件移動方法
·Oracle數(shù)據(jù)庫并行處理技術(shù)詳解
·關(guān)于Oracle數(shù)據(jù)庫備份與恢復(fù) 
·Oracle密碼文件使用與維護(hù)技巧

 
 
 
最新文章

搶先蘋果,消息稱英特爾芯片采用臺積電
三星揭曉業(yè)內(nèi)首款單條 512GB DDR5 內(nèi)存
vivo 高端新機(jī)爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息稱三星 Galaxy Tab S8 系列平板將放
機(jī)械革命推出 F6 輕薄本:16 英寸全面屏
英特爾 12 代 Alder Lake CPU 600 系列
雷軍:向小米手機(jī) 1 首批用戶每人贈送價(jià)
小米李明談用戶被踢出 MIUI 測試版:大

推薦文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感寫真
宮如敏不雅照瘋傳 看張馨予韓一菲獸獸誰
不懼孔子搶位 阿凡達(dá)游戲影音配置推薦
2015第十七屆“東北安博會”火爆招商
第十六屆東北國際公共安全防范產(chǎn)品博覽
2016年第五屆中國國際商業(yè)信息化博覽會
2016年第五屆中國國際POS機(jī)及相關(guān)設(shè)備展
互聯(lián)網(wǎng)電視熟了嗎 2013最火電視深解析
桑達(dá)獲邀出席2015中國(廣州)國際POS機(jī)
寶獲利報(bào)名參加“2015年度中國POS機(jī)行業(yè)
八卦圖解 More>>
叛逆嫩模性感寫真 宮如敏不雅照瘋傳 看張馨予韓一菲
周偉童魔鬼身材日本性感寫真圖  聯(lián)想V360筆記本模特寫真