Oracle Forms选择多记录到块中

时间:2014-11-13 06:54:35

标签: oracle select oracleforms

我想使用

选择多记录到块中
SELECT  LEVEL, form_desc, form_NAME 
    FROM FORM_MAST 
    where form_id in ( select FORM_ID from  dhsuser.FORM_PRIVILEGE  where  PRIVILEGEID=1)-- :global.priv)
    CONNECT BY PRIOR form_ID = g_id
    START WITH g_id IS NULL;

或在Oracle表格中使用此程序

    PROCEDURE listm IS
l_lev number;
l_dec varchar2(30);
l_nam varchar2(100);

CURSOR mainlist is 
SELECT  LEVEL, form_desc, form_NAME 
FROM FORM_MAST 
where form_id in ( select FORM_ID from  dhsuser.FORM_PRIVILEGE  where  PRIVILEGEID=1)-- :global.priv)
CONNECT BY PRIOR form_ID = g_id
START WITH g_id IS NULL;

BEGIN

  for e_list in mainlist
  loop

    :bmain.level := e_list.level;
    :bmain.desc := e_list.form_desc;
    :bmain.fname := e_list.form_name;

end loop;
END;

结果应显示多条记录 就像这张照片 enter image description here

问题是,当我在Oracle Form中运行此过程时,它只显示最后一条记录。

1 个答案:

答案 0 :(得分:1)

您的过程遍历查询的结果集,并将每条记录分配到:BMAIN块中的同一行。当程序结束时,你看到的是最后一条记录。

我认为你只需要在循环中使用NEXT_RECORD,但我还没有安装Forms,我可以测试它。遗憾。