• 使用赋值操作符( := ) 给变量赋值,值可以是常量、变量、表达式或者子程序返回值。
    • 使用 SELECT INTO 或 FETCH 语句给变量赋值,值多来自于表或者 SQL 运算结果。
    • 将变量作为子程序的 OUT 或者 IN OUT 参数传入,然后在子程序内部对该参数赋值。
    • 将变量绑定到一个值上。

    使用赋值操作符( := ),可以在子程序的声明部分或者执行部分将一个表达式的值赋给一个变量。

    在子程序的执行部分,可以使用赋值语句给变量赋值。语法格式如下:

    • 示例:声明部分变量初始化
    • 示例:执行部分变量赋值
    1. b_ret := (i_cnt = 1);

    使用 SELECT INTO 语句给变量赋值

    • 示例:使用赋值操作符给变量赋值
    • 示例:使用 FETCH INTO 给变量赋值

    除了可以用 SELECT INTO 对变量赋值外,还可以使用显式游标的 FETCH INTO 语句给变量赋值。

    1. CREATE OR REPLACE FUNCTION f_maxid_of_ware RETURN ware.w_id%TYPE
    2. IS
    3. i_id ware.w_id%TYPE := -1;
    4. CURSOR c1 IS SELECT max(w_id) FROM ware ;
    5. BEGIN
    6. OPEN c1;
    7. CLOSE c1;
    8. RETURN i_id;
    9. EXCEPTION
    10. WHEN OTHERS THEN
    11. END;
    12. /
    13. obclient>
    14. obclient> select f_maxid_of_ware from dual;
    15. +-----------------+
    16. | F_MAXID_OF_WARE |
    17. +-----------------+
    18. | 2 |