亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

PL/SQL基本語法要素

2024-07-21 02:40:37
字體:
來源:轉載
供稿:網友
常量

    1. 定義常量的語法格式
    常量名 constant 類型標識符 [not null]:=值;
    常量,包括后面的變量名都必須以字母開頭,不能有空格,不能超過30個字符長度,同時不能和保留字同名,常(變)量名稱不區分大小寫,在字母后面可以帶數字或非凡字符。括號內的not null為可選參數,若選用,表明該常(變)量不能為空值。
    2. 實例
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為pi的數字型常量,長度為9。
    執行結果如圖9.6所示。
    ―――――――――――――――――――――――――――――――――――――
    declare
        pi constant number(9):=3.1415926;
    begin
        commit;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/constantdefine.sql。
PL/SQL基本語法要素
基本數據類型變量

    1. 基本數據類型
    PL/SQL中常用的基本數據類型如表9.2所示。
表9.2 常見的數據基本類型類型標識符說明Number數字型Int整數型Pls_integer整數型,產生溢出時出現錯誤Binary_integer整數型,表示帶符號的整數Char定長字符型,最大255個字符Varchar2變長字符型,最大2000個字符Long變長字符型,最長2GBDate日期型Boolean布爾型(TRUE、FALSE、NULL三者取一)    在PL/SQL中使用的數據類型和Oracle數據庫中使用的數據類型,有的含義是完全一致的,有的是有不同的含義的。
    2. 基本數據類型變量的定義方法
    變量名 類型標識符 [not null]:=值;
    3. 實例
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為age的數字型變量,長度為3,初始值為26。執行結果如圖9.7所示。
PL/SQL基本語法要素
    ―――――――――――――――――――――――――――――――――――――
    declare
        age number(3):=26;
    begin
        commit;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/basicdatatypedefine.sql。

復合數據類型變量

    下面介紹常見的幾種復合數據類型變量的定義。
    1. 使用%type定義變量
    為了讓PL/SQL中變量的類型和數據表中的字段的數據類型一致,Oracle 9i提供了%type定義方法。這樣當數據表的字段類型修改后,PL/SQL程序中相應變量的類型也自動修改。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為mydate的變量,其類型和tempuser.testtable數據表中的currentdate字段類型是一致的。
    執行結果如圖9.8所示。
    ―――――――――――――――――――――――――――――――――――――
    Declare
        mydate tempuser.testtable.currentdate%type;
    begin
        commit;
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/typedefine.sql。

PL/SQL基本語法要素
    2. 定義記錄類型變量
    很多結構化程序設計語言都提供了記錄類型的數據類型,在PL/SQL中,也支持將多個基本數據類型捆綁在一起的記錄數據類型。
    下面的程序代碼定義了名為myrecord的記錄類型,該記錄類型由整數型的myrecordnumber和日期型的mycurrentdate基本類型變量組成,srecord是該類型的變量,引用記錄型變量的方法是“記錄變量名.基本類型變量名”。
    程序的執行部分從tempuser.testtable數據表中提取recordnumber字段為68的記錄的內容,存放在srecord復合變量里,然后輸出srecord.mycurrentdate的值,實際上就是數據表中相應記錄的currentdate的值。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,執行結果如圖9.9所示。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    declare
        type myrecord is record(
           myrecordnumber int,
           mycurrentdate date);
        srecord myrecord;
    begin
        select * into srecord from tempuser.testtable where recordnumber=68;
        dbms_output.put_line(srecord.mycurrentdate);
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ recordtypedefine.sql。
    在PL/SQL程序中,select語句總是和into配合使用,into子句后面就是要被賦值的變量。
PL/SQL基本語法要素
    3. 使用%rowtype定義變量
    使用%type可以使變量獲得字段的數據類型,使用%rowtype可以使變量獲得整個記錄的數據類型。比較兩者定義的不同:變量名 數據表.列名%type,變量名 數據表%rowtype。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為mytable的復合類型變量,與testtable數據表結構相同,執行結果如圖9.10所示。
    ―――――――――――――――――――――――――――――――――――――
    Declare
        mytable testtable%rowtype;
    begin
       select * into mytable
       from tempuser.testtable
       where recordnumber=88;
       dbms_output.put_line(mytable.currentdate);
    end;
    ―――――――――――――――――――――――――――――――――――――
PL/SQL基本語法要素
    【配套程序位置】:第9章/ rowtypedefine.sql。
    4. 定義一維表類型變量
    表類型變量和數據表是有區別的,定義表類型變量的語法如下:
    ―――――――――――――――――――――――――――――――――――――
    type 表類型 is table of 類型 index by binary_integer;
    表變量名 表類型;
    ―――――――――――――――――――――――――――――――――――――
    類型可以是前面的類型定義,index by binary_integer子句代表以符號整數為索引,這樣訪問表類型變量中的數據方法就是“表變量名(索引符號整數)”。

    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為tabletype1和tabletype2的兩個一維表類型,相當于一維數組。table1和table2分別是兩種表類型變量。
    執行結果如圖9.11所示。
    ―――――――――――――――――――――――――――――――――――――
    Declare
       type tabletype1 is table of varchar2(4) index by binary_integer;
       type tabletype2 is table of tempuser.testtable.recordnumber%type index by binary_integer;
    table1 tabletype1;
    table2 tabletype2;
    begin
       table1(1):='大學';
       table1(2):='大專';
       table2(1):=88;
       table2(2):=55;
       dbms_output.put_line(table1(1)table2(1));
       dbms_output.put_line(table1(2)table2(2));
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ tabletypedefine1.sql。
PL/SQL基本語法要素
    “”是連接字符串的運算符。
    5. 定義多維表類型變量
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為tabletype1的多維表類型,相當于多維數組,table1是多維表類型變量,將數據表tempuser.testtable中recordnumber為60的記錄提取出來存放在table1中并顯示。執行結果如圖9.12所示。
    ―――――――――――――――――――――――――――――――――――――
    Declare
      type tabletype1 is table of testtable%rowtype index by binary_integer;
      table1 tabletype1;
    begin
       select * into table1(60)
       from tempuser.testtable
       where recordnumber=60;
       dbms_output.put_line(table1(60).recordnumbertable1(60).currentdate);
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ tabletypedefine2.sql。
PL/SQL基本語法要素
    在定義好的表類型變量里,可以使用count、delete、first、last、next、exists和PRior等屬性進行操作,使用方法為“表變量名.屬性”,返回的是數字。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為tabletype1的一維表類型,table1是一維表類型變量,變量中插入3個數據,綜合使用了表變量屬性。
    執行結果如圖9.13所示。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    Declare
        type tabletype1 is table of varchar2(9) index by binary_integer;
    table1 tabletype1;
    begin
        table1(1):='成都市';
        table1(2):='北京市';
        table1(3):='青島市';
        dbms_output.put_line('總記錄數:'to_char(table1.count));
        dbms_output.put_line('第一條記錄:'table1.first);
        dbms_output.put_line('最后條記錄:'table1.last);
        dbms_output.put_line('第二條的前一條記錄:'table1.prior(2));
        dbms_output.put_line('第二條的后一條記錄:'table1.next(2));
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ tabletypedefine3.sql。

PL/SQL基本語法要素

表達式

    變量、常量經常需要組成各種表達式來進行運算,下面介紹在PL/SQL中常見表達式的運算規則。
    1. 數值表達式
    PL/SQL程序中的數值表達式是由數值型常數、變量、函數和算術運算符組成的,可以使用的算術運算符包括+(加法)、-(減法)、*(乘法)、/(除法)和**(乘方)等。
    在【SQLPlus Worksheet】中執行下列PL/SQL程序,該程序定義了名為result的整數型變量,計算的是10+3*4-20+5**2的值,理論結果應該是27。執行結果如圖9.14所示。
    ―――――――――――――――――――――――――――――――――――――
    set serveroutput on
    Declare
       result integer;
    begin
       result:=10+3*4-20+5**2;
       dbms_output.put_line('運算結果是:'to_char(result));
    end;
    ―――――――――――――――――――――――――――――――――――――
    【配套程序位置】:第9章/ datacompute.sql。
PL/SQL基本語法要素
    dbms_output.put_line函數輸出只能是字符串,因此利用to_char函數將數值型結果轉換為字符型。
    2. 字符表達式
    字符表達式由字符型常數、變量、函數和字符運算符組成,唯一可以使用的字符運算符就是連接運算符“”。
    3. 關系表達式
    關系表達式由字符表達式或數值表達式與關系運算符組成,可以使用的關系運算符包括以下9種。
    < 小于
    > 大于
    = 等于(不是賦值運算符:=)
    like 類似于
    in 在……之中
    <= 小于等于
    >= 大于等于
    != 不等于
    between 在……之間
    關系型表達式運算符兩邊的表達式的數據類型必須一致。
    4. 邏輯表達式
    邏輯表達式由邏輯常數、變量、函數和邏輯運算符組成,常見的邏輯運算符包括以下3種。
    NOT:邏輯非
    OR:邏輯或
    AND:邏輯與
    運算的優先次序為NOT、AND和OR。

函數

    PL/SQL程序中提供了很多函數供擴展功能,除了標準SQL語言的函數可以使用外,最常見的數據類型轉換函數有以下3個。
    To_char:將其他類型數據轉換為字符型。
    To_date:將其他類型數據轉換為日期型。
    To_number:將其他類型數據轉換為數值型。
    以上介紹了PL/SQL中最基本的語法要素,下面介紹體現PL/SQL過程化編程思想的流程控制語句。


上一篇:PL/SQL程序結構

下一篇:PL/SQL流程控制

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品xxxxx| 琪琪第一精品导航| 国产日韩换脸av一区在线观看| 亚洲白虎美女被爆操| 日韩中文字幕视频在线| 97视频在线观看播放| 日韩性生活视频| 亚洲欧美一区二区三区情侣bbw| 国产精品成人一区二区| 国产一区二区三区毛片| 国产精品丝袜一区二区三区| 富二代精品短视频| 伊人一区二区三区久久精品| 欧美一级bbbbb性bbbb喷潮片| 自拍偷拍亚洲欧美| 亚洲a∨日韩av高清在线观看| 国产精品直播网红| 国产欧美一区二区三区久久| 久久人人看视频| 日韩欧美成人区| 色噜噜国产精品视频一区二区| 狠狠躁夜夜躁人人躁婷婷91| 亚洲美女精品久久| 亚洲一区中文字幕| 中文字幕亚洲色图| 亚洲国产精品999| 亚洲人成在线观看网站高清| 久久久久www| 久久69精品久久久久久久电影好| 久久亚洲精品国产亚洲老地址| 亚洲欧美国产日韩中文字幕| 国产成人综合亚洲| 久久久亚洲国产天美传媒修理工| 亚洲国产精品一区二区久| 精品国产老师黑色丝袜高跟鞋| 国产精品久久久久久久7电影| 欧美另类极品videosbestfree| 欧美一级视频在线观看| 成人免费视频a| 一区二区三区亚洲| 中文字幕亚洲一区| 国产午夜精品视频免费不卡69堂| 欧美日韩成人在线观看| 亚洲色图国产精品| 国产在线观看91精品一区| 亚洲精品日韩av| 欧美一区深夜视频| 欧美激情精品久久久久久| 欧美一区深夜视频| 亚洲欧美国产视频| 富二代精品短视频| 日韩有码视频在线| 成人在线视频网站| 欧美俄罗斯乱妇| 在线观看国产精品日韩av| 亚洲国产成人久久综合| 日本精品久久久久久久| 久久男人资源视频| 成人中文字幕+乱码+中文字幕| 日韩欧美中文字幕在线观看| 国产精品久久久久久久久久小说| 国产精品入口夜色视频大尺度| 亚洲国产精品久久久久秋霞蜜臀| 中文国产成人精品久久一| 国产盗摄xxxx视频xxx69| 国产91精品视频在线观看| 国产精品电影在线观看| 欧美激情视频网址| 欧美激情图片区| 国产99久久精品一区二区 夜夜躁日日躁| 精品国产91久久久| 91国内产香蕉| 97在线视频观看| 色噜噜狠狠狠综合曰曰曰| 久久久久国色av免费观看性色| 久久99国产精品久久久久久久久| 国产精品久久综合av爱欲tv| 粉嫩av一区二区三区免费野| 97视频免费在线观看| 中文字幕日韩电影| 久久影视电视剧免费网站清宫辞电视| 亚洲aⅴ日韩av电影在线观看| 性色av一区二区三区| 久久精品久久精品亚洲人| 亚洲欧洲偷拍精品| 日韩在线免费高清视频| 精品高清一区二区三区| 国产高清在线不卡| 久久成人在线视频| 日韩av最新在线| 精品国产欧美一区二区五十路| 亚洲成人网久久久| 久久免费国产视频| 色婷婷综合久久久久| 草民午夜欧美限制a级福利片| 日韩欧美一区二区在线| 高清欧美性猛交xxxx| 欧美亚洲国产视频小说| 国产精品美女呻吟| 亚洲自拍偷拍第一页| 亚洲美女www午夜| 国产精品人成电影| 欧美激情高清视频| 欧美视频二区36p| 91影视免费在线观看| 欧美在线中文字幕| 91在线观看免费高清完整版在线观看| 中文字幕国产日韩| 91精品久久久久久久| 国产在线精品成人一区二区三区| 久久久久久免费精品| 亚洲成人黄色网| 91精品久久久久久久久久另类| 性亚洲最疯狂xxxx高清| 国产精品网址在线| 日韩精品在线私人| 国产一区二区三区三区在线观看| 久久综合伊人77777尤物| 国产精品一久久香蕉国产线看观看| 亚洲日本中文字幕免费在线不卡| 国产成人福利视频| 国产日韩欧美在线看| 久久男人资源视频| 日韩乱码在线视频| 国产成人福利夜色影视| 亚洲网站在线播放| 国产亚洲精品久久久久动| 亚洲全黄一级网站| 欧洲成人在线观看| 亚洲激情自拍图| 岛国av在线不卡| 欧美在线www| 色与欲影视天天看综合网| 亚洲综合在线播放| 国产欧美日韩亚洲精品| 亚洲3p在线观看| 欧美性生活大片免费观看网址| 91精品国产91久久久久久久久| 92福利视频午夜1000合集在线观看| 精品亚洲夜色av98在线观看| 97婷婷涩涩精品一区| 亚洲欧美精品suv| 日日骚av一区| 正在播放国产一区| 7m第一福利500精品视频| 日本免费一区二区三区视频观看| 欧美成人四级hd版| 亚洲成人网在线观看| 国产精品7m视频| 国产精品自产拍在线观看| 欧美日韩免费在线| 欧美一级片在线播放| 久久国产精品久久精品| 91久久国产综合久久91精品网站| 黑人狂躁日本妞一区二区三区| 91精品国产91久久久久福利| 亚洲在线www| 免费91麻豆精品国产自产在线观看| 日韩精品中文字幕在线| 亚洲精品mp4| 草民午夜欧美限制a级福利片| 久久久久中文字幕2018| 亚洲乱亚洲乱妇无码| 国产精品情侣自拍|