使用数组填充 APEX 表单上的文本字段

Posted

技术标签:

【中文标题】使用数组填充 APEX 表单上的文本字段【英文标题】:Populate Text Fields on APEX Form using Array 【发布时间】:2012-11-28 09:19:26 【问题描述】:

我正在使用条形码扫描仪扫描条形码(由订单^位置组成 - 我使用 ^ 作为分隔符),然后我需要将这两个值分开并将两个值放入两个文本字段中。这个想法是将条形码扫描到第三个文本字段中,然后在按下保存后使用一个过程将其分开 - 然后将它们保存到单独的表格列中。我有以下分隔文本的内容,但我现在正尝试将数组中保存的值放入 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;

【问题讨论】:

【参考方案1】:

看到 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;

【讨论】:

谢谢,这在 SQL Developer 中有效,但是当我在我的 APEX 表单上运行代码时,它显示“ORA-01403:未找到数据”。我错过了文本字段:p1_order 和 :p1_location 上的冒号,这没什么区别。但是我们现在该数组可以工作,因为它在 sql developer 中填充/工作

以上是关于使用数组填充 APEX 表单上的文本字段的主要内容,如果未能解决你的问题,请参考以下文章

在查询字符串中传递值以自动填充表单上的字段

我想在 ORACLE APEX 的表单中添加非数据库字段

Oracle APEX 中自动显示的字段

如何防止 HTML 表单上的浏览器自动填充功能?

通过连接来自其他文本字段的字符串值自动填充访问表单中的字段

Jquery 发送到电话单击链接以填充键盘表单中的文本字段