create or replace procedure bbb_proc(v_mc varchar2 ,v_sal out bbb%rowtype) as
begin
declare cursor b_cursor(v varchar2) is select * from bbb where mc=v_mc;
open b_cursor(v_mc); loop
fetch b_cursor into v_sal; --这里报错?
exit when b_cursor%notfound;
dbms_output.put_line(v_sal.mc||v_sal.sal);
end loop;
close b_cursor;
end bbb_proc;declare v_bsal varchar2(10);
begin bbb_proc('c',v_bsal);
end;表 bbb
mc sal
a 10
a 20
b 10
b 20
b 30
c 30
问题出在哪里?
begin
declare cursor b_cursor(v varchar2) is select * from bbb where mc=v_mc;
open b_cursor(v_mc); loop
fetch b_cursor into v_sal; --这里报错?
exit when b_cursor%notfound;
dbms_output.put_line(v_sal.mc||v_sal.sal);
end loop;
close b_cursor;
end bbb_proc;declare v_bsal varchar2(10);
begin bbb_proc('c',v_bsal);
end;表 bbb
mc sal
a 10
a 20
b 10
b 20
b 30
c 30
问题出在哪里?
SQL>
SQL> CREATE OR REPLACE PROCEDURE bbb_proc(v_mc VARCHAR2, v_sal OUT bbb%ROWTYPE) AS
2 CURSOR b_cursor(v VARCHAR2) IS
3 SELECT * FROM bbb WHERE mc = v_mc;
4 BEGIN
5 OPEN b_cursor(v_mc);
6 LOOP
7 FETCH b_cursor
8 INTO v_sal; --这里报错?
9 EXIT WHEN b_cursor%NOTFOUND;
10 dbms_output.put_line(v_sal.mc || v_sal.sal);
11 END LOOP;
12 CLOSE b_cursor;
13 END bbb_proc;
14 /
Procedure created
SQL>
SQL> DECLARE
2 v_bsal bbb%ROWTYPE;
3 BEGIN
4 bbb_proc('c', v_bsal);
5 END;
6 /
c30
PL/SQL procedure successfully completed
SQL>
8 INTO v_sal; --这里报错?
9 EXIT WHEN b_cursor%NOTFOUND;
10 dbms_output.put_line(v_sal.mc || v_sal.sal);
11 END LOOP;
12 CLOSE b_cursor;
13 END bbb_proc;
14 /
Procedure created
SQL>
SQL> DECLARE
2
3 v_bsal bbb%ROWTYPE;
4 BEGIN
5 bbb_proc('c', v_bsal);
6 END;
7 /
PL/SQL procedure successfully completed是在那个窗口进行操作的?
记得先执行set serveroutput on
不然屏幕是不打印的