oracle form builder中from子句查询作为数据源

    技术2022-05-19  44

    1、创建from子句查询的步骤:

             a、手工创建一个数据块。

             b、在数据块的属性面板中选择“数据库数据块”为“是”。

             c、在数据块的属性面板中选择“查询数据源类型”为“from子句查询”,然后在“查询数据源名称”中写入select查询语句。

            d、根据需要创建数据项,并用相关数据库项目的名称来为每个数据项命名。然后修改数据项的“数据类型”、“长度”等属性。

            e、设置数据块的某一个数据项为“主键”。

            f、数据块的属性设置好后,就可以通过布局向导将数据块的内容显示到画布上了。

            g、运行测试,ok,完成。

    2、使用from子句的优缺点

            优点:from子句查询实际上和使用视图没有什么差别。但是from子句查询更可取,因为它保留在表单中而不是在数据库中。如果数据库视图(它完全独立于表单)被删除、移动或者权限被收回,那么这个表单就无效了。将select语句放在表单中而不是作为一个视图放在数据库中,这可以消除许多问题。它还可以使数据库更整洁,不会因为只用于表单的数据库视图而变得很混乱。

           缺点:数据块向导不能用于创建数据块,必须手工设置数据块、它的项目和所有必需的属性。这都需要大量的工作,但是一旦设置了数据块,就可以使用布局向导来完成格式化工作了。

    3、from子句中的查询条件于default_where的关系

            子查询中的Where条件和Default_Where条件不是一个层次,可以共同叠加作用于查询结果。常规表数据源的实际SQL为 select ..,rowid from tname where; 子查询实际SQL为select ..,rowid from (select ... from tname where ..) where .. 其中子查询中的Where为查询字符串中的where,后面一个则为Forms的Default_Where...并不冲突。条件放在子查询中可能效率较高,但同时面临着不易修改数据源的尴尬。


    最新回复(0)