官术网_书友最值得收藏!

實例014 使用記錄類型輸出數據表中的一行

【實例描述】

實例013介紹了PL/SQL的常量和變量的使用,除此之外,PL/SQL還提供了兩個屬性數據類型。當聲明一個變量的值是數據庫中的一行或者是數據庫中某列時,可以直接使用屬性類型來聲明。其中,屬性數據類型% ROWTYPE表示引用數據庫中的一行(一條記錄),因此也將其稱為記錄類型。

本實例從數據表STUDENT中獲取學號為“120004”的學生信息,并將其姓名、年齡、性別和所在班級輸出在SQL*Plus控制端中,其中數據表STUDENT的初始數據如圖1-28所示,本實例的執行結果如圖1-35所示。

圖1-35 使用記錄類型輸出數據表中的一行

【實現代碼】

    SQL> SET SERVEROUTPUT ON
    SQL> DECLARE
      2  mystu STUDENT%ROWTYPE;
      3  BEGIN
      4  SELECT * INTO mystu FROM STUDENT WHERE sno='120004';
      5  DBMS_OUTPUT.PUT_LINE(MYSTU.SNAME);
      6  DBMS_OUTPUT.PUT_LINE(MYSTU.SAGE);
      7  DBMS_OUTPUT.PUT_LINE(MYSTU.SGENTLE);
      8  DBMS_OUTPUT.PUT_LINE(MYSTU.SDEPT);
      9  END;
     10  /

【范例解析】

本實例使用了%ROWTYPE記錄數據類型,其引用數據庫表中的一行作為數據類型,即RECORD類型(記錄類型),它是PL/SQL附加的數據類型。表示一條記錄,就相當于C#中的一個對象。可以使用“.”來訪問記錄中的屬性。

上述代碼中首先聲明了mystu對象,其數據類型為STUDENT %ROWTYPE,表示其為數據表STUDENT的一行,然后通過SELECT語句從數據表中獲取一條記錄到mystu對象中,最后通過DBMS_OUTPUT.PUT_LINE語句輸出該行記錄的某些屬性。

注意:訪問和調用記錄類型對象的屬性需要使用符號“.”,這與C/C++語言中引用結構體等數據類型的屬性相同

主站蜘蛛池模板: 容城县| 邻水| 白城市| 兴仁县| 花垣县| 石台县| 司法| 九江县| 太白县| 邵东县| 哈密市| 宿州市| 拉萨市| 琼海市| 西充县| 靖边县| 乡宁县| 扶余县| 尚志市| 新乐市| 兴仁县| 肇东市| 四平市| 阿城市| 寻甸| 林周县| 霞浦县| 基隆市| 高青县| 绥德县| 马尔康县| 东辽县| 株洲县| 棋牌| 文登市| 扬中市| 奉新县| 湖南省| 龙山县| 永嘉县| 天峻县|