无法在 APEX 报告中创建创建时间
Failed to create creation time in APEX report
我正在使用 Oracle APEX 构建交互式报告。在创建页面中,我想在数据库中插入一个名为 create_time 的字段,该字段未显示在创建页面上。同样,在编辑页面中,我想更新数据库中名为update_time的字段。
对于编辑页面,我添加了一个进程并将plsql代码设置为:
update table_test t set t.UPDATE_DATE = sysdate
where t.ROWID = :P2_ROWID;
这行得通。
但是,在创建页面时,我将plsql代码设置为:
update table_test t set t.CREATE_DATE = sysdate
where t.PROJECT_ID= :P3_PROJECT_ID;
这没有用。然后我将 where 子句硬编码为 sth,如下所示:where t.PROJECT_ID='100',然后我创建了一个 id = 100 的项目,并且它有效!所以我想,出于某种原因,这 :P3_PROJECT_ID 无法获取值。任何人都知道为什么?除了使用进程之外,还有其他方法可以插入 create_time 吗?谢谢!
原因是 APEX 不知道 :P3_PROJECT_ID 的值,除非您的进程使用 ID 作为 PK 和 returns PK 值。
创建/更新列的一个更简单的方法是在 table 上创建一个数据库触发器,每当插入/更新记录时触发,包括来自 SQL Workshop 或 APEX 之外的所有一起。
安装其中一个示例应用程序并查看 table 上的触发器以获得最佳实践。
我正在使用 Oracle APEX 构建交互式报告。在创建页面中,我想在数据库中插入一个名为 create_time 的字段,该字段未显示在创建页面上。同样,在编辑页面中,我想更新数据库中名为update_time的字段。
对于编辑页面,我添加了一个进程并将plsql代码设置为:
update table_test t set t.UPDATE_DATE = sysdate
where t.ROWID = :P2_ROWID;
这行得通。
但是,在创建页面时,我将plsql代码设置为:
update table_test t set t.CREATE_DATE = sysdate
where t.PROJECT_ID= :P3_PROJECT_ID;
这没有用。然后我将 where 子句硬编码为 sth,如下所示:where t.PROJECT_ID='100',然后我创建了一个 id = 100 的项目,并且它有效!所以我想,出于某种原因,这 :P3_PROJECT_ID 无法获取值。任何人都知道为什么?除了使用进程之外,还有其他方法可以插入 create_time 吗?谢谢!
原因是 APEX 不知道 :P3_PROJECT_ID 的值,除非您的进程使用 ID 作为 PK 和 returns PK 值。
创建/更新列的一个更简单的方法是在 table 上创建一个数据库触发器,每当插入/更新记录时触发,包括来自 SQL Workshop 或 APEX 之外的所有一起。 安装其中一个示例应用程序并查看 table 上的触发器以获得最佳实践。