在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输出这个值。