创建Oracle过程
我正在尝试创建一个程序,它创建没有错误。但是当我尝试运行它时,我会得到以下错误。请指教
SQL> begin
2 Update_STUD_Fin ( '1011');
3 end;
4 /
begin
*
ERROR at line 1:
ORA-06511: PL/SQL: cursor already open
ORA-06512: at "ORAIN.UPDATE_STUD_FIN", line 3
ORA-06512: at "ORAIN.UPDATE_STUD_FIN", line 8
ORA-06512: at line 2
程序是
SQL> CREATE OR REPLACE PROCEDURE Update_STUD_Fin ( AIDY_CODE IN VARCHAR2 ) IS
2 CURSOR PublicationC IS
3 SELECT SGidm from SGB
4 WHERE SGCODE_EFF ='201030';
5 BEGIN
6 OPEN PublicationC;
7
8 FOR PublicationR IN PublicationC
9 LOOP
10 DBMS_OUTPUT.PUT_LINE( PublicationR.SGidm );
11 END LOOP;
12
13 close PublicationC;
14
15 END;
16 /
Procedure created.
没有找到相关结果
已邀请:
4 个回复
锹缄
贡炮逗握惫
递劝臼类洪
炉挤仙挟
的第5行,由匿名PL / SQL块的第1行调用。 看一下你的代码,我发现了一些问题: 使用
时,不应显式打开和关闭光标。这将由
循环自动完成。 您也不应尝试关闭尚未打开的游标。如果您尝试这样做,您将收到ORA-01001'无效游标'错误消息。我猜你已经把它放进来确保光标在你打开之前关闭了,但不幸的是你不能这样做。 简而言之,您应该删除程序中的所有
和
语句,然后重试。