我执行的 PL/SQL block 出现以下错误。
ORA-06550: line 16, column 1: PLS-00103: Encountered the symbol "EXCEPTION" when expecting one of the following:
在我包含用户定义的异常 e_nonrented
之前,我下面的匿名程序工作正常。它检查 bindvariable 的值:g_movie_id=2..
如果是这样,它会抛出异常...
代码如下:
VARIABLE g_movie_id NUMBER EXEC :g_movie_id := 2
DECLARE v_count NUMBER;
v_movieid NUMBER;
v_title mm_movie.movie_title%TYPE;
e_nonrented
EXCEPTION;
BEGIN
SELECT m.movie_title,
COUNT(r.rental_id),
r.movie_id
INTO v_title,
v_count,
v_movieid
FROM mm_movie m,
mm_rental r
WHERE m.movie_id = r.movie_id
AND m.movie_id = :g_movie_id
GROUP BY m.movie_title,
r.movie_id;
DBMS_OUTPUT.PUT_LINE(v_title || ': ' || v_count);
IF :g_movie_id = 2 THEN
RAISE e_nonrented;
EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE('there is no movie id for: ' || :g_movie_id);
WHEN e_nonrented THEN
DBMS_OUTPUT.PUT_LINE(' Movie with Id ');
END;
最佳答案
您只是缺少 END IF;
语句。
IF :g_movie_id = 2 THEN
RAISE e_nonrented;
END IF;
EXCEPTION
关于oracle - PLS-00103 : Encountered the symbol "EXCEPTION" error while checking for a value in the bind variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8458716/