无法在APEX报告中创建创建时间

时间:2016-09-01 15:59:12

标签: oracle-apex

我正在使用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子句硬编码为这样:其中t.PROJECT_ID ='100',我创建一个id = 100的项目,它的工作原理!所以我想,由于某种原因:P3_PROJECT_ID无法获取值。谁知道为什么?除了使用进程之外,还有其他方法可以插入create_time吗?谢谢!

1 个答案:

答案 0 :(得分:1)

原因是APEX不知道:P3_PROJECT_ID的值,除非您的进程使用ID作为PK并返回PK值。

创建/更新列的一种更简单的方法是在表上创建一个DB触发器,无论何时插入/更新记录(包括SQL Workshop或外部APEX),都会触发该触发器。 安装其中一个示例应用程序并查看表中的触发器以获得最佳实践。