国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PL/SQL基本語法要素(組圖)

2024-07-21 02:34: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 變長字符型,最長2GB
  Date 日期型
  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個數據,綜合使用了表變量屬性。
  
  執

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶川县| 札达县| 惠安县| 太湖县| 上饶县| 柳州市| 深圳市| 连平县| 灵寿县| 天门市| 会东县| 当雄县| 天气| 云林县| 枣阳市| 涪陵区| 铁岭市| 旌德县| 河北省| 新疆| 桐乡市| 青龙| 灵宝市| 伊吾县| 望江县| 胶南市| 莲花县| 瓮安县| 通海县| 安乡县| 泉州市| 嘉峪关市| 临江市| 库伦旗| 锡林浩特市| 自治县| 明光市| 福清市| 林口县| 介休市| 溆浦县|