在Oracle中执行如下语句报在 FETCH 语句的 INTO 列表中值数量出现错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Oracle中执行如下语句报在 FETCH 语句的 INTO 列表中值数量出现错误相关的知识,希望对你有一定的参考价值。

declare
cursor emp_cursor is
select ename,sal from emp where deptno=10;
type ename_table_type is table of varchar2(10);
ename_table ename_table_type;
begin
open emp_cursor;
fetch emp_cursor bulk collect into ename_table;
for i in 1..ename_table.count loop
dbms_output.put_line(ename_table(i));
end loop;
close emp_cursor;
end;

参考技术A cursor定义了2列,但你的ename_table只有一列
参考以下代码:
DECLARE
CURSOR emp_cursor
IS
SELECT ename, sal
FROM scott.emp
WHERE deptno = 10;

TYPE ename_table_type IS TABLE OF emp_cursor%rowtype;

ename_table ename_table_type;
BEGIN
OPEN emp_cursor;

FETCH emp_cursor BULK COLLECT INTO ename_table;

FOR i IN 1 .. ename_table.COUNT
LOOP
DBMS_OUTPUT.put_line (ename_table (i).ename);
END LOOP;

CLOSE emp_cursor;
END;本回答被提问者采纳

以上是关于在Oracle中执行如下语句报在 FETCH 语句的 INTO 列表中值数量出现错误的主要内容,如果未能解决你的问题,请参考以下文章

oracle 执行sql语句提示用户不存在

如何查看oracle服务器上正在执行的SQL语句

关于Oracle语句的执行顺序

在Oracle触发器中如何执行多条update语句?

shell编程中如何执行oracle语句

oracle中怎么获得sql语句的错误信息