CREATE OR REPLACE FUNCTION FUNC_順序番号 --←キーワードはFUNCTION
(
P_発番単位 IN VARCHAR2) --←仮パラメータのモードは INだけ
RETURN NUMBER --←RETURNするデータ型を宣言する
IS
V_発番済番号 順序.番号%TYPE;
V_番号 NUMBER;
BEGIN
-- 指定された発番単位を1足しこみ変数に格納する
UPDATE 順序
SET 番号 = 番号 + 1
WHERE 発番単位 = P_発番単位 RETURNING 番号
INTO V_番号;
-- その変数の値をRETURNする
RETURN V_番号; --← 値をリターンして終了する
END;
/
SELECT * FROM 順序 WHERE 発番単位 = '注文ID';
BEGIN
dbms_output.put_line(FUNC_順序番号('注文ID'));
dbms_output.put_line(FUNC_順序番号('注文ID'));
dbms_output.put_line(FUNC_順序番号('注文ID'));
dbms_output.put_line(FUNC_順序番号('注文ID'));
END;
/
输出:
発番単位 番号
-------------------- ----------
注文ID 4
PL/SQLプロシージャが正常に完了しました。
5
6
7
8