oracle - PLS-00103 : Encountered the symbol "EXCEPTION" error while checking for a value in the bind variable

标签 oracle plsql ora-06550

我执行的 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/

相关文章:

sql - oracle中的CHECK约束,用于列之间的值检查

oracle - 插入带有标识列的 Oracle 表时如何使用 %ROWTYPE?

c# - 从 C# 在 Oracle 数据库中输入日期参数​​的正确格式是什么

sql - 为什么 oracle 过程无效

oracle - 如何远程连接到Oracle 11g数据库

Oracle (RAC) 与 NoSQL

oracle - 关于pl/sql存储程序文本的问题

sql - 在 Oracle 脚本中使用变量

oracle - 从包内动态调用私有(private)过程