问题是您将该命令放在哪里:
SET SERVEROUT ON;导致其在函数声明中出现。
SET SERVEROUT ON;CREATE OR REPLACe FUNCTION CountViewers(nameofPlay plays.play%TYPE) RETURN NUMBER ASNUM NUMBER; BEGIN SELECT SUM(registerd) INTO num1 FROM plays WHERe play=nameofPlay; return num; END;DECLAREinc integer;res NUMBER;invalid_status EXCEPTION;CURSOR clients2 IS SELECt * FROM plays;name_of_play plays.play%ROWTYPE;play_name plays%TYPE;BEGINinc:=0;name_of_play := '&Play';OPEN clients2;LOOP FETCH clients2 INTO play_name; IF name_of_play != play_name.play and clients2%rowcount>i THEN inc:=inc+1; ELSIF name_of_play = play_name.play THEN EXIT WHEN clients2%found; ELSE RAISE invalid_status; --like throw error END IF;EXIT WHEN clients2%notfound;END LOOP;res:=CountViewers(name_of_play);DBMS_OUTPUT.PUT_LINE(name_of_play ||' | '|| res);EXCEPTION WHEN invalid_status THEN DBMS_OUTPUT.PUT_LINE('The name of play is not found');END;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)