【发布时间】:2014-03-30 09:55:15
【问题描述】:
当我尝试运行以下块时,我收到此错误“ORA-01403: no data found”。
SET SERVEROUTPUT ON
DECLARE
TYPE dept_table_type IS TABLE OF departments.department_name%TYPE
INDEX BY PLS_INTEGER;
my_dept_table dept_table_type;
f_loop_count NUMBER(2) :=10;
v_deptno NUMBER(5) :=0;
BEGIN
FOR i IN 1..f_loop_count LOOP
v_deptno := v_deptno + 10;
SELECT department_name
INTO my_dept_table(i)
FROM departments
WHERE department_id = v_deptno;
END LOOP;
FOR i IN 1..f_loop_count LOOP
DBMS_OUTPUT.PUT_LINE(my_dept_table(i));
END LOOP;
END;
/
我对这个问题不是 100% 确定的。我唯一能想到的是在 DECLARE 块中它没有正确执行 INDEX 部分 - 尽管我不确定如何让它工作。
干杯
【问题讨论】:
-
嗯,这意味着您的选择语句不会为您的 v_deptno 值之一返回任何内容。
标签: oracle for-loop plsql indexing