2014-04-25 27 views
0

我不明白为什么我会得到这个错误。我有桌子,但代码示例工作不正常。这里有什么问题?Oracle 10g一个带参数的游标错误

DECLARE 
    CURSOR c_cust(p_city VARCHAR2) IS 
     SELECT * FROM cust WHERE cust.city=p_city; 
    v_cust c_cust%ROWTYPE; 
    v_city c_cust%TYPE; 
BEGIN 
    v_city := 'London'; 
    OPEN c_cust (v_city); 
    LOOP 
     FETCH c_cust INTO v_cust; 
     EXIT WHEN (c_cust%NOTFOUND); 
     DBMS_OUTPUT.PUT_LINE (v_cust.cname || ' has ' || v_cust.rating); 
    END LOOP; 
    IF (c_cust%ISOPEN) THEN CLOSE c_cust; 
END; 

ORA-06550:线15,第4栏:PLS-00103: 出现符号 “;” 在需要下列之一时:如果

  1. DECLARE
  2. CURSOR c_cust(p_city VARCHAR2)IS
  3. SELECT * FROM CUST WHERE cust.city = p_city; **
+1

“* Oracle不能正常工作*”是一个相当的陈述... –

+0

是:)编辑线程名称。 –

回答

1

c_cust%ISOPEN应该在结束循环之前;

If .... then 
    .... 
end if; 

you miss end if;

+0

直指点!谢谢!!! –