刚学存储过程,写了个简单的程序
就出现错误
create or replace procedure aaa
as
name1 varchar(500);
pass varchar(500);
str varchar(500);
cursor abc is
select names,pwd from ldc where name='a';
begin
open abc
loop
fetch abc into  name1,pass;
 if abc%notfound then
       exit;
    else
   update stri set sr= 'aaaaa';
   commit;
    end if;
    end loop;
    close abc;
    end;谁帮我看看
谢谢,没有分了

解决方案 »

  1.   

    CREATE OR REPLACE PROCEDURE aaa
    AS
       name1   VARCHAR (500);
       pass    VARCHAR (500);
       str     VARCHAR (500);   CURSOR abc
       IS
          SELECT names, pwd
            FROM ldc
           WHERE NAME = 'a';
    BEGIN
       OPEN abc;   LOOP
          FETCH abc
           INTO name1, pass;      IF abc%NOTFOUND
          THEN
             EXIT;
          ELSE
             UPDATE stri
                SET sr = 'aaaaa';         COMMIT;
          END IF;
       END LOOP;   CLOSE abc;
    END;
    loop前少了个;
      

  2.   

    语法没错。
    细心点,别把字段名写错,还有别漏了分号。
    同时最好用varchar2archar2替换varchar,尽管oracle会做自动转换。