Oracle匿名PL/SQL块中缺少关键字错误
匿名PL/SQL块:Oracle匿名PL/SQL块中缺少关键字错误,oracle,plsql,Oracle,Plsql,匿名PL/SQL块: DECLARE CURSOR employees_in_10_cur IS SELECT * FROM ad_week_table BEGIN FOR employee_rec IN employees_in_10_cur LOOP DBMS_OUTPUT.put_line(employee_rec.ad_no || ',' || employee_rec.week_no); END LOOP; END; 执行此块时
DECLARE
CURSOR employees_in_10_cur
IS
SELECT *
FROM ad_week_table
BEGIN
FOR employee_rec
IN employees_in_10_cur
LOOP
DBMS_OUTPUT.put_line(employee_rec.ad_no || ',' || employee_rec.week_no);
END LOOP;
END;
执行此块时,出现缺少关键字错误。我做错了什么?光标末端缺少分号:
CURSOR employees_in_10_cur
IS
SELECT *
FROM ad_week_table;
错误消息将始终为您提供发生错误的行号。请始终检查此区域并查看该区域
比如,;如果我更改表格以便运行此操作,我会得到以下结果:
SQL> declare
2
3 cursor employees_in_10_cur is
4 select *
5 from user_tables
6
7 begin
8 for employee_rec in employees_in_10_cur loop
9 dbms_output.put_line (
10 employee_rec.ad_no || ',' || employee_rec.week_no );
11 end loop;
12 end;
13 /
for employee_rec in employees_in_10_cur loop
*
ERROR at line 8:
ORA-06550: line 8, column 8:
PL/SQL: ORA-00905: missing keyword
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored
ORA-06550: line 11, column 4:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
begin function pragma procedure subtype type <an identifier>
<a double-quoted delimited-identifier> current cursor delete
exists prior
SQL>declare
2.
当前10个小时内有3个员工
4选择*
5来自用户表
6.
7开始
8对于10 cur循环中的employees\u rec中的employees\u rec
9 dbms_output.put_行(
10名员工| | | | | | | | |员工|周|号);
11端环;
12结束;
13 /
对于10 cur循环中的employees\u rec中的employees\u rec
*
第8行错误:
ORA-06550:第8行第8列:
PL/SQL:ORA-00905:缺少关键字
ORA-06550:第4行第5列:
PL/SQL:SQL语句被忽略
ORA-06550:第11行第4列:
PLS-00103:在预期以下情况时遇到符号“结束”:
begin函数pragma过程子类型类型
当前光标删除
先于
你有3个错误;一个在第8行,因为光标无效;一个在第11行,因为光标无效而没有发生循环;另一个在第4行,表示“语句已忽略”。在定义光标查询后放一个分号
DECLARE
CURSOR employees_in_10_cur
IS
SELECT *
FROM ad_week_table;
BEGIN
FOR employee_rec
IN employees_in_10_cur
LOOP
DBMS_OUTPUT.put_line (
employee_rec.ad_no || ',' || employee_rec.week_no );
END LOOP;
END;
这个问题似乎离题了,因为它太本地化了