循环遍历Oracle表单中数据块的所有记录

时间:2013-02-19 18:22:35

标签: forms oracle

我正在尝试学习Oracle表单(v6.0)。在按下按钮的触发器中,我试图遍历数据块中的所有记录。到目前为止,我有以下代码:

BEGIN
    GO_BLOCK('MY_BLOCK');
    FIRST_RECORD;
    LOOP
    MESSAGE(:MY_BLOCK.DSP_NAME);
    EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
    NEXT_RECORD;            
    END LOOP;   
END;

当我运行代码时,除最后一个之外,显示所有DSP_NAME值。如果我添加:

MESSAGE(:MY_BLOCK.DSP_NAME);
循环后

,显示最后一条记录的DSP_NAME值。为什么会这样 - 在最后一次记录检查之前显示消息?什么是循环记录的正确方法?

2 个答案:

答案 0 :(得分:7)

你的循环是正确的。我怀疑最后一条消息显示在表单底部的状态栏中,而不是弹出窗口。

答案 1 :(得分:2)

要获得弹出窗口,请使用相同的两行:

MESSAGE(:MY_BLOCK.DSP_NAME);

MESSAGE(:MY_BLOCK.DSP_NAME);

你会这样做的。