PLS-00103: Обнаружена ошибка символа «ИСКЛЮЧЕНИЕ» при проверке значения в переменной связывания - PullRequest
1 голос
/ 10 декабря 2011

Я получаю приведенную ниже ошибку для блока PL / SQL, который я выполнил.

ORA-06550: строка 16, столбец 1: PLS-00103: обнаружен символ "ИСКЛЮЧЕНИЕ" при ожидании одногоиз следующего:

Моя анонимная процедура ниже работала нормально, пока я не включил user defined exception 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;

1 Ответ

6 голосов
/ 10 декабря 2011

Вы просто пропускаете оператор END IF;.

  IF :g_movie_id = 2 THEN
    RAISE e_nonrented;
  END IF;

EXCEPTION
...