我正在编写一个函数,它接受两个参数(一个ID和一个公司名称),并根据这两个变量返回一个值作为数字。 select语句是一个简单的左连接,有两个表AND company_name = 'company_name_var'
和WHERE ID = id_var
。
我的功能可以从使用游标中受益吗?如果是的话,我将如何利用它以及为什么/有什么好处?
SELECT STATEMENT:
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 :)
答案 0 :(得分: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;