根据 Oracle APEX 项目值更新和插入

     2023-03-27     199

关键词:

【中文标题】根据 Oracle APEX 项目值更新和插入【英文标题】:Update and Insert based on Oracle APEX item value 【发布时间】:2020-08-31 17:18:29 【问题描述】:

我有一个更新表(SAMPLE_TAB)的 APEX 页面。此表有多个列(ID、BADGEID、USERID、NAME、CITY、ZIP、EFTDT、TERMDT、STATUS)ID 是记录的唯一编号。

BADGEID 和 USERID 是相关的,如果其中一条记录发生更改,它应该自动创建新记录并过期旧记录。

如果 NAME、CITY 或 ZIP 发生变化,则应该更新记录。

例如:见下表

ID BADGEID USERID NAME CITY ZIP EFFDT TERMDT STATUS

1 2345 54623 XYZ NY 00000 8/31/2020 12/31/2199 活动

2 5678 90876 DEF NJ 00001 8/31/2020 12/31/2199 活跃

如果 BADGEID 2345 在 2020 年 9 月 1 日更改为相同 USERID(54623) 的 2354 那么应该有一个 新纪录如下

3 2354 54623 XYZ NY 00000 09/01/2020 12/31/2199 活动中

并将旧记录更新到下面

1 2345 54623 XYZ NY 00000 8/31/2020 09/01/2020 不活动

我在更新处理中尝试了下面的 PL/SQL 代码,但出现错误

声明 ID_PARM =(从 SAMPLE_TAB 中选择 BADGEID,其中 ID = :P1_ID)

开始 如果 (:P1_BADGEID = ID_PARM) 那么 更新 ....... 别的 插入和更新

【问题讨论】:

【参考方案1】:

我相信您正在寻找这样的东西。用其他列/页面项/条件填写“...”:

DECLARE
  l_old_row sample_tab%ROWTYPE;
BEGIN
  SELECT * INTO l_old_row FROM sample_tab WHERE id = :P1_ID;
  IF ((l_old_row.badge_id != :P1_BADGE_ID) OR (l_old_row.user_id != :P1_USERID))
  THEN
    UPDATE sample_tab SET status = 'INACTIVE' WHERE id = :P1_ID;
    INSERT INTO sample_tab (badgeid,userid,...) VALUES (:P1_BADGE_ID, :P1_USERID,...);
  ELSIF ((l_old_row.name != :P1_NAME) OR (l_old_row.city != :P1_CITY) OR ...) THEN
    UPDATE sample_tab
       SET name = :P1_NAME,
           city = :P1_CITY,
           ...
     WHERE id = :P1_ID;
  END IF;
END;

【讨论】:

我在“SELECT * FROM sample_tab INTO l_old_row WHERE id = :P1_ID;”处遇到错误部分 SQL 命令未正确结束。 将 sql 语句更改为下面并且它工作 SELECT * INTO l_old_row FROM sample_tab WHERE id = :P1_ID;" @MHK 谢谢我已经更新了我的答案 - 代码未经测试

Oracle APEX 表格形式选择列表禁用

...如,选择列表中有;橙色、绿色、蓝色、红色我希望能够根据另一列中的值禁用或仅读取选择列表中的蓝色和橙色 查看详情

如何在页眉 oracle apex 中设置项目值

】如何在页眉oracleapex中设置项目值【英文标题】:howtosettheitemvaluesinpageheaderoracleapex【发布时间】:2019-10-1706:09:16【问题描述】:我有2件从日期到现在的项目和一个页面中的提交按钮..:p1_enter_start_date和:p1_enter_end_date和一个提交... 查看详情

从 Oracle Apex 页面获取多个值并将其存储在表中

...分隔来插入多个值。我希望当我点击提交按钮时,它应该根据逗号分隔值,并且应该单独插入不同的行。例如,如果我在我的文本字段中传递“abc,cde, 查看详情

Oracle Apex - 循环项目

】OracleApex-循环项目【英文标题】:OracleApex-LoopItems【发布时间】:2022-01-1700:34:51【问题描述】:我有一个表单,用户可以在其中为客户添加记录,问题是,每个客户可以有多个产品。我的插入(记录)过程基本上检查是否在产... 查看详情

使用页面项目值在 oracle apex 中搜索经典报告

】使用页面项目值在oracleapex中搜索经典报告【英文标题】:classicreportsearchinginoracleapexusingpageitemvalues【发布时间】:2014-01-1105:31:28【问题描述】:我在我的oracleapex中将我的数据库中的一个表显示为经典报告,现在我想为这个经... 查看详情

如何使用 PACKAGE 向 APEX 中的表插入值?

...】:2022-01-1121:27:25【问题描述】:现在我正在使用插入或更新值向表中插入值,如下所示:IF:P903_PYMT_MTH_IDISNOTNULLTHENINSERTINTO"TABLE_NAME"(PYMT_MTH_ID,PYMT_MTH_TYPE,PYMT_ 查看详情

更新交互式网格报告值时出现 Oracle Apex 错误 [关闭]

】更新交互式网格报告值时出现OracleApex错误[关闭]【英文标题】:OracleApexErrorwhileupdatinginteractivegridreportvalues[closed]【发布时间】:2019-09-0609:21:21【问题描述】:我正在OracleApex中创建一个应用程序,它使用一个包含63列的表来更新... 查看详情

Oracle Apex 根据 LOV 选择的值动态启用/禁用文本字段

】OracleApex根据LOV选择的值动态启用/禁用文本字段【英文标题】:OracleApexdynamicallyenable/disabletextfielddependingonLOVselectedvalue【发布时间】:2015-06-1716:42:47【问题描述】:我正在尝试根据LOV选择的值启用/禁用文本字段,但它仅在页面... 查看详情

Oracle Apex - 如何使用动态操作更新更改操作的值列表?

】OracleApex-如何使用动态操作更新更改操作的值列表?【英文标题】:OracleApex-HowcanIusedynamicactionstoupdateListofValuesonchangeaction?【发布时间】:2020-01-2510:12:48【问题描述】:我正在寻找熟悉OracleApex的人来帮助我解决这个问题。在我... 查看详情

Oracle APEX 中的条件值列表?

...具体取决于在第一个列表中选择的内容。有没有办法可以根据第一个列表的值有条件地填充第二个列表?到目前为止,我尝试将if语句放入LOV声明中的尝试均未成功. 查看详情

在 Oracle Apex 中将图像插入到表中

...inOracleApex【发布时间】:2015-12-2320:58:42【问题描述】:我根据下表创建了一个表单:CREATETABLE"POSTS"("POST_ID"NUMBER(15,0)NOTNULLENABLE,"USER_ID"VARCHAR2(30)NOTNULLENABLE,"TITLE"VARCHAR2(255) 查看详情

根据另一个表中的值插入和/或更新记录

】根据另一个表中的值插入和/或更新记录【英文标题】:InsertingAND/ORUpdatingrecordsbasedoffofvaluesfromanothertable【发布时间】:2020-07-3122:23:10【问题描述】:基本上,我要做的是在源表中创建一个新的重复行,如果CANID作为目标表中的... 查看详情

在 oracle APEX 货币格式掩码中插入空格

】在oracleAPEX货币格式掩码中插入空格【英文标题】:InsertwhitespaceinoracleAPEXcurrencyformatmask【发布时间】:2021-07-2115:20:15【问题描述】:我正在使用oracleAPEX20.1并有一个报告,其中有一列显示货币值。由于我来自欧洲,我需要在值... 查看详情

SQL Server 根据字段的值触发插入和/或更新的记录

】SQLServer根据字段的值触发插入和/或更新的记录【英文标题】:SQLServertriggerforaninsertedand/orupdatedrecord,basedonvalueofafield【发布时间】:2013-02-2216:33:41【问题描述】:我有一个我认为非常简单的要求,但是因为我是新手,所以我不... 查看详情

Oracle如何快速选择和更新一个字段值并插入记录

】Oracle如何快速选择和更新一个字段值并插入记录【英文标题】:Oraclehowtoselectandupdateonefieldvalueandinsertrecordsquickly【发布时间】:2021-02-2422:44:45【问题描述】:我们有以下场景:创建表createtablett(idnumber,namevarchar2(30),notevarchar2(4));i... 查看详情

Oracle Apex Shuttle 项目数组在提交时为空

】OracleApexShuttle项目数组在提交时为空【英文标题】:OracleApexShuttleItemArrayemptyonsubmit【发布时间】:2016-06-3009:48:39【问题描述】:我正在尝试将ShuttleItem中的值保存到表格中。Shuttle项的值取自LOV,名称作为显示值,ID作为返回值... 查看详情

在 Oracle APEX 交互式报表中更新与过滤器相关的页面项目

】在OracleAPEX交互式报表中更新与过滤器相关的页面项目【英文标题】:UpdatingPageItemswithRespecttoFiltersinOracleAPEXInteractiveReport【发布时间】:2015-04-1320:00:36【问题描述】:我最近开始在我的OracleAPEX应用程序中使用交互式报表。以前... 查看详情

无法在 Oracle apex 中使用匿名块更新字段

】无法在Oracleapex中使用匿名块更新字段【英文标题】:UnabletoupdatefieldsusinganonymousblockinOracleapex【发布时间】:2019-06-1214:04:15【问题描述】:我的Apex应用程序中有2个页面,第1页和第2页。在Page1-我有2个字段,我只是保存,以便我... 查看详情