資源描述:
《PLSQL中的變量》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在PL/SQL中處理變量:l在聲明部分聲明和初始化變量l在執(zhí)行部分為變量賦新值,或在表達(dá)式中使用變量l在異常處理部分也可以使用變量l通過參數(shù)把值傳遞到PL/SQL塊中l(wèi)通過輸出變量或者參數(shù)將值傳出PL/SQL塊PL/Sql中的變量類型:l簡單變量l復(fù)合(組合)變量簡單變量:簡單變量不包括任何組件,只能保存一個值簡單變量類型:基本類型包括三大類:字符,數(shù)字,日期BINARY_INTEGER整形數(shù)字NUMBER(precision,scale)數(shù)字類型(數(shù)值長度、小數(shù)位數(shù))CHAR(maximum_length)定長字
2、符類型VARCHAR2(maximum_length)變長字符類型DATE日期類型LONG長字符類型LONGRAW長二進(jìn)制類型CLOB/BLOB/BFI大對象類型(字符大對象,二進(jìn)制大對象,操作系統(tǒng)文件大對象)BOOLEAN布爾類型,有效值為TRUE,F(xiàn)ALSE,NULL簡單變量的聲明:v_genderCHAR(1);v_countBINARY_INTEGER:=0;v_total_salNUMBER(9,2):=0;9表示數(shù)據(jù)長度,2表示保留小數(shù)位v_order_dateDATE:=SYSDATE+7;天數(shù)+7c
3、_tax_rateCONSTANTNUMBER(3,2):=8.25;v_validBOOLEANNOTNULL:=TRUE;復(fù)合變量:3復(fù)合變量也叫做組合變量。在復(fù)合變量中包含多個內(nèi)部的組件,每個組件都可以單獨存放值。一個復(fù)合變量可以存放多個值3與簡單變量類型不同,復(fù)合變量類型不是數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)類型,所以復(fù)合變量在聲明類型之前,首先要創(chuàng)建使用到的復(fù)合類型,然后將變量聲明為復(fù)合變量3復(fù)合類型被創(chuàng)建后,可以被使用多次,定義多個變量復(fù)合變量類型:l表類型tablel記錄類型record表類型:TABLE:3表類
4、型類似于其他編程語言中的數(shù)組類型3由兩個組件組成:1.數(shù)據(jù)類型為BINARY_INTEGER(整形數(shù)字)的主鍵2.數(shù)據(jù)類型為一個確定的簡單類型的列3Table類型沒有長度限制,可以動態(tài)增長。表類型中的第二部分類似與數(shù)組中的值,這個部分必須是一個已經(jīng)確定的簡單類型,不能是其他的復(fù)合類型3表類型的結(jié)構(gòu)很像數(shù)組。第一部分:是一個按1遞增的整形數(shù)字,起到數(shù)字索引的作用,第二部分:使一種確定的簡單類型,用來存放每個索引號對應(yīng)的具體的數(shù)值PL/SQLTABLE結(jié)構(gòu):聲明一個PL/SQLTABLE:--varchar2(4)和e
5、mpl.last_name%typedeclaretypename1_table_typeistableofvarchar2(4)indexbybinary_integer;typename2_table_typeistableofempl.last_name%typeindexbybinary_integer;name1_tablename1_table_type;name2_tablename1_table_type;beginname1_table(1):='大學(xué)';name1_table(2):='大本';
6、name2_table(1):=88;name2_table(2):=55;dbms_output.put_line(name1_table(1)
7、
8、''
9、
10、name1_table(2));--大學(xué)大本dbms_output.put_line(name1_table(2)
11、
12、''
13、
14、name2_table(2));--大本55end;記錄類型RECORDS:3復(fù)合類型中的RECORDS類型是由多個組件組成的一種類型。包含一個或幾個組件,每個組件稱為一個域(FIELD),域的數(shù)據(jù)類型可以是簡單變量類型、另一個RECO
15、RD類型或PL/SQL的TABLE類型。3在使用RECORD變量時把多個域的集合作為一個邏輯單元使用,對記錄類型變量賦值或引用,都需要使用“記錄變量名.域名”的方式來實現(xiàn)。3主要用于從表中取出查詢到的行數(shù)據(jù)。PL/SQLRECORD結(jié)構(gòu):3記錄類型可以包含一個或多個域,每個域相當(dāng)于記錄類型變量的一個屬性.在使用記錄變量類型時,實際上是對記錄類型變量的屬性進(jìn)行操作.每個域都可以是不同的數(shù)據(jù)類型,存放不同類型的數(shù)據(jù)聲明PL/SQLRECORD:語法:TYPEname_record_typeISRECORD(field_
16、name1field_type[NOTNULL{:=
17、DEFAULT}expr],field_name2field_type[NOTNULL{:=
18、DEFAULT}expr],...);identifiertype_name;例子:...TYPEemp_record_typeISRECORD(last_nameVARCHAR2(25),first_nameV