oracle 存储过程 select into 多个变量
在Oracle中,您可以使用SELECT INTO语句将单行查询结果直接赋值给变量。如果您想要将多个列的值分别赋给多个变量,可以在PL/SQL块中使用这种语法。以下是一个简单的例子:
CREATE OR REPLACE PROCEDURE get_employee_details(p_emp_id IN EMPLOYEES.EMPLOYEE_ID%TYPE) IS
v_first_name EMPLOYEES.FIRST_NAME%TYPE;
v_last_name EMPLOYEES.LAST_NAME%TYPE;
v_email EMPLOYEES.EMAIL%TYPE;
BEGIN
SELECT FIRST_NAME, LAST_NAME, EMAIL
INTO v_first_name, v_last_name, v_email
FROM EMPLOYEES
WHERE EMPLOYEE_ID = p_emp_id;
-- 可以使用 v_first_name, v_last_name, v_email 变量
DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_first_name || ' ' || v_last_name);
DBMS_OUTPUT.PUT_LINE('Employee Email: ' || v_email);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Employee not found.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
在这个例子中,我们定义了一个名为get_employee_details
的存储过程,它接受一个员工ID作为参数。然后,它使用SELECT INTO语句从EMPLOYEES表中检索指定员工的FIRST\_NAME、LAST\_NAME和EMAIL,并将这些值分别赋给相应的变量。最后,它打印出员工的名字和电子邮件地址。如果没有找到数据,它会抛出一个NO\_DATA\_FOUND异常,否则,如果发生任何其他错误,它会抛出一个OTHERS异常。
评论已关闭