0

我正在编写一个函数,它接受两个参数(一个 ID 和一个公司名称)并基于这两个变量作为数字返回一个值。select 语句是一个简单的左连接,两个表带有AND company_name = 'company_name_var'WHERE ID = id_var

我的功能可以从使用游标中受益吗?如果是,我将如何使用它以及为什么/有什么好处?

选择声明:

SELECT Max(some_other_value) 
FROM   table1 
       inner join table2 
                  ON table1.id  = table2.id
                     AND company_name  = 'company_name_var' 
WHERE ID = id_var; --id and ID here represent two different columns :)
4

1 回答 1

1

不,光标要处理几行。你只想得到一排。因为你只想要你应该插入这样的最大值:

create or replace function myfunction(i_company_name varchar2, i_id pls_integer)
return number
as
   l_maxvalue number;
begin
  SELECT Max(some_other_value) 
  into   l_maxvalue
  FROM   table1 
         inner join table2 
                    ON table1.id  = table2.id
                       AND company_name  = i_company_name
  WHERE ID = i_id;
  return l_maxvalue;
end myfunction;
于 2013-05-31T20:55:18.753 回答