我在一个进程中使用以下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;
答案 0 :(得分:1)
您确实可以从数组中检索值。但是,获取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;
在启用调试的情况下运行页面,并检查调试消息以获取循环的输出。在您尝试访问的其中一个职位上,很可能没有任何价值。