Я получаю ошибку при создании процедуры в pl / sql

#oracle #plsql #oracle-apex

#Oracle #plsql #oracle-apex

Вопрос:

Мой код

 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. КУРСОР s НАХОДИТСЯ

Ответ №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;