91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PL/SQL復合變量

發布時間:2020-08-28 04:22:40 來源:網絡 閱讀:311 作者:yeleven 欄目:關系型數據庫

復合變量可以將不同數據類型的多個值存儲在一個單元中。由于復合類型可以由用戶自己根據需要定義其結構,所以復合數據類型也稱為自定義數據類型。


在PL/SQL中,使用%TYPE聲明的變量類型與數據表中字段的數據類型相同,當數據表中字段數據類型修改后,PL/SQL程序中相應變量的類型也自動隨之改變。

如EMP表中有一個ENAME字段,其數據類型為VARCHAR2(30),聲明變量v_name用來存放ENAME字段的數據,聲明如下:

v_name emp.ename%TYPE;

則變量v_name的數據類型始終與ENAME字段的類型保持一致,即VARCHAR2(30),當ENAME字段的數據類型改為VARCHAR2(50)時,v_name變量的數據類型也自動修改為VARCHAR2(50)。

DECLARE

    v_name emp.ename%TYPE;

BEGIN

    SELECT ename INTO v_name FROM emp

        WHERE empno=7788;

    DBMS_OUTPUT.PUT_LINE(v_name);

END;

/


PL/SQL提供了%ROWTYPE來存儲一行數據。例如,要定義DEPT表中的一行記錄,并且數據類型和每列類型一致可以使用%ROWTYPE,聲明如下:

dept_record dept%ROWTYPE;

下面使用%ROWTYPE類型的變量存儲DEPT表中的一行數據,示例如下:

DECLARE

    v_dept dept%ROWTYPE;

BEGIN

    SELECT * INTO v_dept FROM dept

    WHERE deptno=30;

    DBMS_OUTPUT.PUT_LINE(v_dept.deptno);

    DBMS_OUTPUT.PUT_LINE(v_dept.dname);

    DBMS_OUTPUT.PUT_LINE(v_dept.loc);

END;

/


記錄類型與數據庫中的行結構非常類似,使用記錄類型定義的變量可以存儲由多個列值組成的一行數據。當使用記錄類型的變量時,首先需要定義記錄的結構,然后定義記錄類型的變量。定義記錄類型時必須使用TYPE語句指出將在記錄中包含的字段及其數據類型,語法如下:

DECLARE

    TYPE emp_record_type IS RECORD(

        name emp.ename%TYPE,

        salary emp.sal%TYPE,

        dno emp.deptno%TYPE);  --自定義變量類型emp_record_type

    emp_record emp_record_type;  --定義emp_record_type類型的變量emp_record

BEGIN

    SELECT ename,sal,deptno INTO emp_record

        FROM emp WHERE empno=7788;  --查詢ename,sal,deptno賦值給變量emp_record

    DBMS_OUTPUT.PUT_LINE(emp_record.name);

END;

/

--------------------------------------------------

DECLARE

    TYPE emp_record_type IS RECORD(

        name emp.ename%TYPE,

        salary emp.sal%TYPE,

        dno emp.deptno%TYPE);  --自定義變量類型emp_record_type

    emp_record emp_record_type;  --定義emp_record_type類型的變量emp_record

BEGIN

    SELECT ename,sal INTO emp_record.name,epm_record.salary

        FROM emp WHERE empno=7788;  --查詢ename,sal,deptno賦值給變量emp_record

    DBMS_OUTPUT.PUT_LINE(emp_record.name);

END;

/


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东莞市| 夹江县| 云龙县| 油尖旺区| 赤峰市| 融水| 龙陵县| 水城县| 延长县| 南阳市| 哈巴河县| 潮安县| 克什克腾旗| 灵台县| 平顶山市| 乌拉特中旗| 洪雅县| 麟游县| 景谷| 久治县| 比如县| 南投县| 襄垣县| 敖汉旗| 五河县| 清流县| 汨罗市| 莒南县| 青阳县| 漳州市| 宁城县| 高邑县| 红原县| 枣阳市| 将乐县| 芷江| 武威市| 成武县| 钟山县| 宜城市| 高陵县|