gpt4 book ai didi

oracle - 使用函数调用更新多列

转载 作者:行者123 更新时间:2023-12-04 05:03:25 24 4
gpt4 key购买 nike

假设我有列的表
a, b, c, d, e

是否有一种方法/语法可以从过程/函数的 out 参数更新列 d 和 e,这些参数接受列 a、b 和 c 的参数值。 (程序(a,b,c,出d,出e))

(除了使用游标逐行遍历所有行)?

最佳答案

您可以创建一个 PL/SQL tables or user defined records ,像这样
处理记录的函数

FUNCTION Get_updated_recs(p_emp_id     emp.emp_id%TYPE,
p_manager_id emp.manager_id%TYPE)
RETURN EMP_REC_TYPE
IS
p_emp_rec EMP_REC_TYPE;
BEGIN
IF p_emp_id = 100 THEN
p_emp_rec.salary := 50000;
p_emp_rec.bonus := 10000;
END IF;

RETURN p_emp_rec;
END get_updated_recs;

主程序单元
DECLARE
TYPE emp_rec_type IS RECORD (
salary employees.salary%TYPE,
bonus employees.bonus );
emp_rec EMP_REC_TYPE;
BEGIN
FOR emp IN (SELECT *
FROM employees) LOOP
emp_rec := Get_updated_recs(emp.emp_id, emp.manager_id);

UPDATE employees
SET salary = emp_rec.salary,
bonus = emp_rec.bonus
WHERE emp_id = emp.emp_id;
END LOOP;
END;

我还没有测试/编译它,只是写出了我的内存,但像这样的东西应该可以工作

关于oracle - 使用函数调用更新多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15837235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com