我正在尝试创建一个ORACLE存储过程,为游标选择一些信息,在该游标上运行一些更新。然后返回光标的内容,这是为了摆脱涉及创建临时表并在其上运行查询的当前设置。
我尝试过的所有内容都导致游标内容超出了我想要运行的任何更新等范围。
基本上我正在尝试:
请帮忙!
我目前的代码是:
create or replace
PROCEDURE TEMP_REPORT
(
returnTable OUT SYS_REFCURSOR
)
IS
CURSOR resultTable
IS
SELECT FNAME,SALARY FROM STAFF;
NAME VARCHAR2 (10);
SALARY VARCHAR2 (10);
BEGIN
Update resultTable set Salary = (salary * 1.1);
--- some more processing here
---- now return the datarows
Cursor returnTable from select name, salary from resultTable where salary > 1000;
END TEMP_REPORT;
答案 0 :(得分:1)
什么不能尝试更简单的事情:
declare
NAME VARCHAR2 (10);
SALARY VARCHAR2 (10);
begin
FOR cid IN ( select FNAME,SALARY FROM STAFF) LOOP
NAME := cid.NAME;
SALARY := cid.SALARY;
DBMS_OUTPUT.
put_line (
NAME
|| ' | '
|| SALARY);
END LOOP;
END;