我希望在我的SQL块中使用多个局部变量,但我总是会遇到一些错误。我只需要return
sum of salary
。有什么想法吗?
function Foo(projekt varchar2)
return number
is sumSalary number;
cursor kurzor is (
select *
from (hr.employees inner join hr.workon using (employee_id))
inner join hr.proj using (projno));
oneLine kurzor%ROWTYPE;
begin
sumSalary := 0;
for oneLine in kurzor
loop
if oneLine.pname = projekt then
dbms_output.put_line(concat(concat(oneLine.first_name,' '),oneLine.last_name));
sumSalary := sumSalary+ oneLine.salary;
end if;
if oneLine.salary > 7500 then
insert into HighSalary values(oneLine.first_name,oneLine.salary);
end if;
end loop;
exception
when others then
dbms_output.put_line('asd');
end;
我的错误:
错误报告:ORA-06550:第2行第1列:PLS-00201:标识符 ' SUMSALARY'必须声明ORA-06550:第2行,第1列:PL / SQL: 语句忽略ORA-06550:第3行第15列:PLS-00201:标识符 ' KURZOR'必须声明ORA-06550:第3行,第1列:PL / SQL: 声明被忽略了 06550. 00000 - "行%s,列%s:\ n%s" *原因:通常是PL / SQL编译错误。 *操作:
答案 0 :(得分:1)
function Foo(projekt varchar2)
return number
is sumSalary number; // remove this semicolon
cursor kurzor is (