在Oracle存儲過程中使用RETURNING語句可以在執行DML操作后返回指定的列值。以下是一個例子:
CREATE OR REPLACE PROCEDURE insert_data
(p_name IN VARCHAR2, p_age IN NUMBER, p_id OUT NUMBER)
AS
BEGIN
INSERT INTO employee (name, age) VALUES (p_name, p_age) RETURNING id INTO p_id;
END insert_data;
在這個例子中,存儲過程insert_data接收兩個輸入參數p_name和p_age,以及一個輸出參數p_id。當存儲過程執行時,它會將輸入的數據插入到employee表中,并將插入的記錄的id值返回給輸出參數p_id。
要調用這個存儲過程并獲取返回值,可以使用如下的PL/SQL代碼片段:
DECLARE
v_id NUMBER;
BEGIN
insert_data('John', 30, v_id);
DBMS_OUTPUT.PUT_LINE('Inserted record with ID: ' || v_id);
END;
在這個例子中,我們調用了insert_data存儲過程,并將返回的id值存儲在變量v_id中,然后通過DBMS_OUTPUT輸出這個值。