存储过程始终始终返回“Process exited”错误

时间:2013-01-08 17:17:31

标签: oracle plsql oracle-sqldeveloper

我正在处理类似于下面的表结构,并试图获得所提到的输出。

enter image description here

为了实现这一点,我编写了以下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编程的新手,如果我解决这个问题的方法不对,请纠正我。

1 个答案:

答案 0 :(得分:1)

打开sqlplus并执行以下命令: -

set serveroutput on
exec Sample_procedure;

如果你的程序编译正常,它应该在dbms_output.put

中显示输出