如何将多个表绑定到单个DM表单?

时间:2014-10-28 10:29:54

标签: oracle oracle-apex

我有一个DM Form类型的页面,我想在其中显示和更新不同表格中的值。默认情况下,当我创建页面时,我被要求提供数据源,仅指定其中一个表,实际上在After Header类型Automated Row Fetch中创建了进程。同样在After Submit中,创建了类型为Automatic Row Processing (DML)的进程。当我从不同的表中添加页面中的项目时,显然我收到的错误是该表中找不到该列。如何在该页面中添加更多表格,以便正确获取和更新它们?

所有表格中都有一个共同的列,用于标识我希望从每个表格中显示哪条记录。

1 个答案:

答案 0 :(得分:0)

  

我想显示和更新来自不同表格的值

     

[...]

     

所有表格中都有一个共同的列,用于标识我希望从每个表格中显示哪条记录。

也许你在各种桌子上寻找一个简单的JOIN

根据Oracle's HR example schema,如果您需要同时显示部门和员工姓名,您可以将之类的内容写为作为报告查询:

SELECT department_name as dep_name,
       first_name || ' ' || last_name as emp_name
FROM HR.DEPARTMENTS JOIN HR.EMPLOYEES
USING(DEPARTMENT_ID)

为了使其可以从APEX表单构建器中使用,您必须将其包装在VIEW中:

CREATE VIEWS MY_VIEW AS SELECT .... FROM ... JOIN ...

我无法保证视图可以像Oracle has very specific rules for inherently updatable views一样立即更新 - 尤其是join views。但是,您可以使用INSTEAD OF trigger使视图可更新。如果您决定采用这种方式,可能值得考虑在需要时就该特定主题提出其他问题。