无法使用Oracle apex中的匿名块更新字段
我的Apex应用程序有两页,分别是第1页和第2页 在第1页-我有两个字段,我只是保存,以便我可以在第2页使用它完全插入到表中,主键是我创建的序列 第2页:主键隐藏(顺序) 我有一个保存按钮,在该按钮上我编写了一个匿名块(动态操作-->执行PLSQL代码)以插入到表中,其中包含第1页和第2页的详细信息,该按钮运行成功,没有问题 但问题在于更新按钮 我再次使用匿名块(动态操作-->执行PLSQL代码)更新第2页上的详细信息。但是数据库中的记录没有更新 我使用的是的连接条件 Id=:P6_PRIMARY_KEY(:P6_PRIMARY_KEY是隐藏字段,Id是带有序列的数据库字段) 我想我无法在where条件下获取Id 不确定我是否遗漏了什么 我已经使用类似的匿名块插入到数据库中,它运行得很好,每当我单击Save按钮时都会创建一个记录 我也在为更新按钮做同样的事情。它也不会无错误地更新无法使用Oracle apex中的匿名块更新字段,oracle,oracle-apex,oracle-apex-5.1,oracle-apex-18.2,Oracle,Oracle Apex,Oracle Apex 5.1,Oracle Apex 18.2,我的Apex应用程序有两页,分别是第1页和第2页 在第1页-我有两个字段,我只是保存,以便我可以在第2页使用它完全插入到表中,主键是我创建的序列 第2页:主键隐藏(顺序) 我有一个保存按钮,在该按钮上我编写了一个匿名块(动态操作-->执行PLSQL代码)以插入到表中,其中包含第1页和第2页的详细信息,该按钮运行成功,没有问题 但问题在于更新按钮 我再次使用匿名块(动态操作-->执行PLSQL代码)更新第2页上的详细信息。但是数据库中的记录没有更新 我使用的是的连接条件 Id=:P6_PRIMAR
我的主键是一个序列。我认为它没有保留主键的值。我可能需要在我的where条件下更改一些内容。取消隐藏
P6_主键
,以便您查看其中的内容。也许您每次都会获取一个新的序列号,所以join不起作用也就不足为奇了。如果是这种情况,则通过应用If
,例如
if :P6_PRIMARY_KEY is null then
:P6_PRIMARY_KEY := seq_name.nextval;
end if;
或者通过设置流程的条件,例如项为空(当然是哪一个?P6\u主键
)
另外,启用调试、运行页面、执行更新,然后查看调试结果。它将显示所有项目的值,以及执行的代码,因此可能有助于找到罪魁祸首。根据我的经验,保存或更新页面中“刚插入”项目的数据往往会很麻烦,因为这些值不在会话中,除非您使用按钮上的提交页面功能。您可以尝试检查会话值选项卡(位于开发人员页面底部)中的值,然后查看您输入的数据是否真实。现在,在我的更新按钮(用于更新值的PLSQL代码)中,这对我很有效我只是在update语句将id返回到:P^_PRIMARY_KEY之后将其用作隐藏值,它实际上将DB的值提取到会话中,我现在可以插入特定的记录了;我很高兴你把它修好了。谢谢你让我们知道。