Oracle带游标存储过程有问题ORA-24344: success with compilation error

CREATE OR REPLACE PROCEDURE testOrc2ISxm VARCHAR2(30);cursor cur IS SELECT KHXM FROM CUSTOMER_LIST WHERE KHID=1;BEGINopen cur;loopFETCH cur INTO xm;exit WHEN cur%notfound;dbms_output.put_line(xm);END loop;EXCEPTION WHEN no_data_found THEN raise_application_error(-2000,'客户不存在')close cur;END testOrc2;
最新回答
寄信给风

2024-11-05 10:58:16

-- 尝试下面这个:

CREATE OR REPLACE PROCEDURE testOrc2
IS
begin
    declare 
       xm VARCHAR2(30);
       cursor cur IS 
       SELECT KHXM FROM CUSTOMER_LIST WHERE KHID=1;
      
          open cur;
          loop
            FETCH cur INTO xm;
            exit WHEN cur%notfound;
              dbms_output.put_line(xm);
          END loop;
         EXCEPTION  no_date_found THEN
          --raise_application_error(-2000,'客户不存在')
            DBMS_OUTPUT.PUT_LINE('客户不存在');
         end
       
       close cur;
end testOrc2;
追问
还是报同样的错误,我用的Navicat的查询编辑器写,感觉是不是这个软件的编辑器有问题
游标不用在存储过程中可以,但是加到存储过程中就有问题
追答
存储过程是可以嵌套游标的。
追问
DECLARE

cursor cur IS SELECT KHXM FROM CUSTOMER_LIST WHERE KHID=1;
xm VARCHAR2(30);
BEGIN
open cur;
loop
FETCH cur INTO xm;
exit WHEN cur%notfound;
dbms_output.put_line(xm);
END loop;
close cur;
END;
这样就没问题