我必须更新表格中的一列(使用功能的要求)。我为customer1表创建了简单的函数。所以我如何使用函数更新我的表。有什么方法吗?
CREATE OR REPLACE FUNCTION fn_easy (name_in in customer1.last_name%type)
RETURN customer1.first_name%type IS
name_tab customer1.first_name%type;
BEGIN
select first_name into name_tab from customer1
where last_name = name_in;
RETURN name_tab;
END fn_easy;
update customer1
set first_name = fn_easy(customer1.last_name);
我明白我们需要在函数中循环参数。我唯一的想法是通过光标来做到这一点。但是,当我有200条记录时,我不认为将光标用于此任务是最佳的。
答案 0 :(得分:0)
您的功能通常没问题,但您必须确保select inside内部返回1个值,否则您将获得异常。如果要将所有值选择到数组中,请使用BULK COLLECT INTO
。要使用函数更新列值,列值类型必须与函数返回类型兼容。