【问题标题】:I'm getting error while creating a procedure in pl/sql在 pl/sql 中创建过程时出现错误
【发布时间】:2020-09-21 10:16:03
【问题描述】:

我的代码

CREATE OR REPLACE proc_grade IS
    v varchar2(20);
    c varchar2(20);
    t integer(10);
    x integer(10);
   
CURSOR s IS
    SELECT total_marks,name,roll_no FROM STUD_MARKS ORDER BY roll_no;
BEGIN
    OPEN s;
        LOOP
            FETCH s INTO x,c,t;
                BEGIN
                    v:=grade(x);
                    INSERT INTO result VALUES(t,c,v);
                    dbms_output.put_line('ROLL_NO : '||t||'NAME: '||c||' CLASS: '||v);
                END;
           EXIT WHEN s%notfound;
        END LOOP;
   CLOSE s;
END;

我得到的错误如下:

ORA-00922:缺少或无效选项

ORA-06512:在“SYS.WWV_DBMS_SQL_APEX_200100”,第 581 行

ORA-06512:在“SYS.DBMS_SYS_SQL”,第 1658 行

ORA-06512:在“SYS.WWV_DBMS_SQL_APEX_200100”,第 567 行

ORA-06512:在“APEX_200100.WWV_FLOW_DYNAMIC_EXEC”,第 2127 行

  1. c varchar2(20);

  2. t 整数(10);

  3. x 整数(10);

  4. CURSOR 是

【问题讨论】:

    标签: oracle plsql oracle-apex


    【解决方案1】:

    不是

    CREATE OR REPLACE           proc_grade
    

    但是

    CREATE OR REPLACE PROCEDURE proc_grade
    

    顺便说一句,你可以通过只运行这个而不是你编写的所有 PL/SQL 来更简单地完成它。

    INSERT INTO result
       SELECT roll_no, name, grade (total_marks) 
       FROM stud_marks;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-28
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      相关资源
      最近更新 更多