使用PL / sql函数进行SQL更新

时间:2015-03-28 19:17:52

标签: sql function plsql calculated-field

我必须更新表格中的一列(使用功能的要求)。我为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条记录时,我不认为将光标用于此任务是最佳的。

1 个答案:

答案 0 :(得分:0)

您的功能通常没问题,但您必须确保select inside内部返回1个值,否则您将获得异常。如果要将所有值选择到数组中,请使用BULK COLLECT INTO。要使用函数更新列值,列值类型必须与函数返回类型兼容。