【问题标题】:Set newly generated entry into page item oracle apex将新生成的条目设置到页面项 oracle apex
【发布时间】:2021-05-12 17:45:36
【问题描述】:

我有以下情况,我想在单击按钮时将数据插入表中。 同时我想从表中返回新生成的ID,并在页面项中设置这个值。

我进行了如下操作: 使用以下 pl/sql 代码创建了一个进程:

declare
l_user_id USERS.ID%TYPE;

begin
 INSERT INTO USERS(ID,FIRSTNAME,LASTNAME,EMAIL) VALUES
 (:P9_ID,:P9_FIRSTNAME,:P9_LASTNAME,:P9_EMAIL)
 returning ID into l_user_id;

INSERT INTO MANAGER(UUID,MID) VALUES
(l_user_id,:P9_MID)


end;

该过程运行正常,数据已插入表中,但未设置页面项的值。插入后。 我的问题是,有没有办法从表中检索刚刚生成的 ID 或通常是刚刚生成的条目并将其放入页面元素中?

【问题讨论】:

  • 您能否详细说明什么“没有按预期工作”?您应该能够将值分配给 :P9_ID 而不是调用 apex_util.set_session_state 但这可能不是您遇到的任何问题的根源。
  • 您不只是使用表单区域(自 19.1 起可用)的任何原因?您不必自己编写任何插入语句,您必须选择将主键值返回到页面项中。

标签: oracle oracle-apex


【解决方案1】:

另一种方法怎么样?

P9_ID项目的源(或默认值?)设置为序列(user_id_seq.nextval)。

我假设当您按下按钮(即提交页面)时,此过程会运行。因此,当您这样做时,P9_ID 的值将被放入会话状态,然后您将其插入到表中。

begin
  insert into users (id, firstname, lastname, email) 
    values
    (:P9_ID, :P9_FIRSTNAME, :P9_LASTNAME, :P109_EMAIL);     --> is it really P109?
end;

以后可以用于你打算使用的任何东西。

【讨论】:

  • 你好:) 我稍微编辑了我的问题,我尝试了你的方法,不幸的是,当我添加新的经理并执行插入过程时,没有设置任何项目。但是我可以看到项目已设置,但我看不到页面项目中出现的值:/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多