oracle - 在 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 行
c varchar2(20);
t 整数(10);
x 整数(10);
光标是
解决方案
它不是
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;
推荐阅读
- r - 将 R 与 MySQL 连接
- git - Git 使用什么数据库存储元数据以及如何访问它?
- ios - 如何在 ScrollView Swift 中为图像更改设置动画
- javascript - 点击功能在jquery中不起作用
- javascript - React 的 componentDidMount() 中的三元运算符问题
- php - 通过 mqseries 库 php 对 MQ 进行身份验证
- ios - 未找到签名证书“iOS 开发”
- javascript - jQuery根据最近的输入值在许多输入上设置不同的日期
- node.js - TsLint 抱怨调用顶级异步方法
- python - Pandas:将带有 DatetimeIndex 的列表的字典转换为 DataFrame