首页 > 解决方案 > 在 pl/sql 中创建过程时出现错误

问题描述

我的代码

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. 光标是

标签: oracleplsqloracle-apex

解决方案


它不是

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;

推荐阅读