我正在使用条形码扫描器扫描条形码(包括订单^位置 - 我使用^作为分隔符),然后我需要将这两个值分开并将两个值放入两个文本字段中。我们的想法是将条形码扫描到第三个文本字段,然后在按下保存后使用进程将其分开 - 然后将它们保存到单独的表列中。我有下面的文本分隔,但我现在试图将数组中的值保存到APEX表单的文本字段中。
我有以下代码在SQL开发人员中使用以下行,但是当我更改它们以尝试将值放入文本字段时,它会失败。我想知道我的语法是否正确或错误?
dbms_output.put_line(v_array(1)); -- This works in SQL Developer
:P1_ORDER := dbms_output.put_line(v_array(1)); -- Fails in SQL Developer & APEX
当我尝试在SQL开发人员中运行以下内容时,我得到以下内容。请有人帮我将数组中的值传递给我的APEX表格上的文本字段。感谢。
ORA-06550:第17行,第13栏: PLS-00222:此范围内不存在名称为“PUT_LINE”的函数 ORA-06550:第17行,第5栏: PL / SQL:忽略语句
declare
v_array apex_application_global.vc_arr2;
P1_ORDER number;
P1_LOCATION number;
begin
-- Convert delimited string to array
v_array := apex_util.string_to_table(:P1_JOB_NUMBER,'^');
--dbms_output.put_line(v_array(1));
--dbms_output.put_line(v_array(2));
:P1_ORDER := dbms_output.put_line(v_array(1));
:P1_LOCATION := dbms_output.put_line(v_array(2));
end;
答案 0 :(得分:0)
请参阅put_line不是函数,它是dbms_output包中的一个过程。
您无法将dbms_output.put_line分配给任何变量。
试试这个
declare
v_array apex_application_global.vc_arr2;
P1_ORDER number;
P1_LOCATION number;
begin
-- Convert delimited string to array
v_array := apex_util.string_to_table(:P1_JOB_NUMBER,'^');
--dbms_output.put_line(v_array(1));
--dbms_output.put_line(v_array(2));
P1_ORDER := v_array(1);
P1_LOCATION := v_array(2);
end;