我正在处理类似于下面的表结构,并试图获得所提到的输出。
为了实现这一点,我编写了以下PL SQL程序:
CREATE OR replace PROCEDURE Sample_procedure
AS
TYPE list_of_names_t
IS TABLE OF emp.emp_index%TYPE;
processedindexes LIST_OF_NAMES_T := List_of_names_t();
flag emp.emp_index%TYPE;
CURSOR c1 IS
SELECT *
FROM emp
WHERE Trim(emp_id) = 'AAAAA'
ORDER BY last_maint_ts ASC;
BEGIN
dbms_output.Put('Entered the loop');
FOR rec IN c1 LOOP
SELECT emp_index
INTO flag
FROM emp
WHERE emp_id = rec.emp_id
AND last_maint_ts > rec.last_maint_ts;
IF flag IS NOT NULL THEN
processedindexes.extend;
Processedindexes(processedindexes.last) := flag;
processedindexes.extend;
Processedindexes(processedindexes.last) := rec.emp_index;
dbms_output.Put('The indexes'
||rec.emp_index
||' & '
||flag
||'refer to same emp ID');
exit;
dbms_output.Put('received NULL');
END IF;
END LOOP;
END;
1)每次,我运行这个我得到输出,因为进程退出sql developer,对此有任何建议吗?
注意: 我是PL SQL编程的新手,如果我解决这个问题的方法不对,请纠正我。
答案 0 :(得分:1)
打开sqlplus并执行以下命令: -
set serveroutput on
exec Sample_procedure;
如果你的程序编译正常,它应该在dbms_output.put
中显示输出