2

我在进程中使用以下 pl/sql 来分隔一些文本,然后将其显示并放入两个文本字段中以保存记录。我看不到以下内容有任何问题,但是当我在 APEX 上运行该进程时,它显示“ORA-01403:未找到数据”。这是将数组中保存的值传递到我的 APEX 表单上的文本字段的正确方法吗?

declare

v_array apex_application_global.vc_arr2;

begin

-- Convert delimited string to array
v_array := apex_util.string_to_table(:P1_OPERATION_JOB,'^');

:P1_ORDER := v_array(1);
:P1_LOCATION := v_array(2);

end;
4

1 回答 1

2

您确实可以像这样从数组中检索值。然而,得到 ORA-01403 错误将表明这两个位置都没有数据。(当试图访问 plsql 数组中没有数据的位置的数据时,Oracle 会抛出这个错误,当 select into 没有检索到数据时也会出现同样的错误)

我运行此代码只是为了确保您的拆分输出:

DECLARE
    l_vc_arr2    APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
    apex_debug_message.log_message('Debugging string to table output:');
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P1_OPERATION_JOB, '^');
    FOR z IN 1..l_vc_arr2.count LOOP
        apex_debug_message.log_message('Item at position '||z||': '||l_vc_arr2(z));
    END LOOP;
END;

在启用调试的情况下运行页面并检查循环输出的调试消息。您尝试访问的职位之一很可能没有价值。

于 2012-11-28T16:19:52.323 回答