Oracle APEX值不会加载到表单上

Oracle APEX值不会加载到表单上,oracle,oracle-apex-5.1,Oracle,Oracle Apex 5.1,在我的APEX页面中,我打开一个弹出页面,并尝试从数据库中加载数据。为了做到这一点,我使用了 标题处理后的预渲染。进程类型设置为PL/SQL代码: BEGIN IF :P3_RECORD_ID IS NOT NULL THEN select TYPE_ID, RECORD_TEXT INTO :P3_TYPE_ID, :P3_RECORD_TEXT from TABLE1 where RECORD_ID = :P3_RECORD_ID; END I

在我的APEX页面中,我打开一个弹出页面,并尝试从数据库中加载数据。为了做到这一点,我使用了 标题处理后的预渲染。进程类型设置为PL/SQL代码:

BEGIN
  IF :P3_RECORD_ID IS NOT NULL THEN
     select TYPE_ID, RECORD_TEXT
     INTO :P3_TYPE_ID, :P3_RECORD_TEXT
     from TABLE1
     where RECORD_ID = :P3_RECORD_ID;
  END IF;
END;
在弹出页面上,我有一个下拉列表(P3_TYPE_ID),由LOV和文本字段(P3_RECORD_text)填充。 这些值显示在会话状态中,但不显示在下拉列表或文本字段中。我不知道我做错了什么


我也尝试了自动行获取,但也没有将任何值加载到字段中,只要进入会话状态

,您认为对于这些项,是否使用<强>默认值< /强>?它将是一个“PL/SQL函数体”,如下所示(对于
P3\u TYPE\u ID
):

我使用了
MAX
函数来避免可能出现的
未找到数据
太多行
错误。如有必要,在
异常
部分处理它们


类似地,填充
P3\u RECORD\u TEXT

您能解释一下这会有什么帮助吗?您是否尝试过(但不起作用),或者只是好奇?它到底做了什么?您正在将RECORD\u ID值传递给页面P3,并根据其值填充TYPE\u ID和RECORD\u TEXT项。默认项值用于设置不存在的项的值。当您想要从数据库中获取这些值时(基于RECORD_ID),那些SELECT语句(实际上是函数)会设置这些值。我不知道你拿到它们后打算用它们做什么。我明白了(我以为你只是想显示那些值)。在这种情况下,您尝试的方法(即自动行处理)是正确的。我建议您不要自己做——最简单的方法是创建一个report+表单(通常是一个交互式报表,它调用一个表单,允许您编辑数据库值)。让向导创造一切;然后删除IR页面(除非您需要),并在您当前的“母版”页面(调用第3页的页面)上创建一个链接,该链接将填充记录ID。其余部分将进行自动行处理。如果节源上的“类型”字段为“null”,而“使用”字段为“始终,替换会话状态中的任何现有值”,则会出现这种行为. 但是,如果这个过程很快,那么解决Littlefoot的方法就更好了。
declare
  l_type_id table1.type_id%type;
begin
  select max(type_id)
  into l_type_id
  from table1
  where record_id = :P3_RECORD_ID;

  return l_type_id;
end;