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

sku*_*ins 6 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;
Run Code Online (Sandbox Code Playgroud)

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

MESSAGE(:MY_BLOCK.DSP_NAME);
Run Code Online (Sandbox Code Playgroud)

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

Gri*_*Dog 7

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