上一页  下一页          目录  索引  定位  词汇表  程序库

验证表信息窗口

   要定义验证表信息,请执行以下步骤:

fnd_form f, fnd_application a 

where f.application_id = a.application_id 

注意:请勿为与会计弹性域或其它大多数键弹性域一起使用的值集指定隐藏标识列。

列类型字段

有三种“类型”的字段将自动显示您选定的列类型。您无需更改显示的列类型。

如果在“列”字段中指定了 SQL 表达式(或未注册表中的列)而非注册的单个列名,您必须指定要求表达式返回的值类型(字符、数字或日期)。由于此窗口不能检索未注册单个列的“列名”信息,因此您必须指定长度。

列长度字段

三个“长度”字段自动显示您选定的列长度。

如果您没有指定隐藏标识列,则 Oracle 应用产品将使用值集的最大长度来定义值是否符合基础弹性域段列的长度。值集的最大长度将自动更改为您在“长度”字段中为“值”列指定的列长度。如果值的长度不符,则不能在定义弹性域段时使用此值集。

如果您使用隐藏标识列,则为隐藏标识列指定的长度将变为用于弹性域的此值集的“有效”最大长度,这是因为 Oracle 应用产品将使用隐藏标识列的长度来确定值是否符合基础弹性域段列的长度。如果值的长度不符,则不能在定义弹性域段时使用此值集。

一般来说,您必须避免更改显示的列长度。但是,在某些情况下,对于其基础列长度小于验证表中的值(或隐藏标识)列实际长度的弹性域,如果要使用此值集,您可能需要更改列长度。例如,如果您使用查看表(值列表)的查看代码列,并且确定所有的查看代码均为两个字符或少于两个字符,则即使查看表中的列实际上可以包含 30 个字符,您也只能指定 2 个字符。对于基础段列长度在 2 和 30 之间的弹性域,您可以使用此值集。

只有在您确定此列中的最大值长度始终等于或小于在此字段指定的长度时,才可以更改列的显示长度。您不应尝试指定一个小于实际潜在值大小的长度“欺骗”Oracle 应用产品,这样可能会导致数据截断错误、“未定义值”错误或其它错误。

如果在“列”字段中指定 SQL 表达式(或未注册表中的列)而非注册的单个列名,您必须指定要表达式返回的值(长度)长度。由于此窗口不能自动检索未注册单个列的“列名”信息,因此您必须指定类型。

WHERE/ORDER BY 字段

使用 SQL WHERE 子句以将有效值集限制为表中的值子集。例如,如果表中包含所有员工的值和含义,但是您只需根据位于加利福尼亚的员工条目进行验证,则可以输入将有效值限制为行 WHERE LOCATION = 'CALIFORNIA' 的 SQL WHERE 子句。您可能需要选择值集名以反映此限制,例如此实例中的“加利福尼亚员工”。

使用 ORDER BY 子句以确保值以非标准顺序显示在值列表中,此值列表位于使用值集的段上。“标准”顺序取决于值集的格式类型。例如,如果表包含星期几,您可能要值列表以“星期一、星期二、星期三...”的时间顺序显示,而不是按可能用于“字符”格式类型值集的“星期五、星期一、星期六...”的字母顺序显示。如果要按时间顺序显示,表(也可能用作隐藏值列)中必须具有按数字标识每天的第二列。因此,如果您调用数字 DAY_CODE 的列,则ORDER BY 子句应该为 ORDER BY DAY_CODE。

警告:对于要与会计弹性域一起使用的值集,您不应使用 WHERE 子句和(或)ORDER BY 子句。一般来说,对于要与键弹性域而非会计弹性域一起使用的验证表,您可以使用 WHERE 子句和(或)ORDER BY 子句。

如果使用 WHERE 子句,您必须将词“WHERE”用作此子句的第一个词。如果使用 ORDER BY,您必须在子句中使用词“ORDER BY”。

您不能在子句中使用 HAVING 或 GROUP BY。您不能在子句中使用 UNION、INTERSECT、MINUS、PLUS 或其它集运算符,除非它们在子查询中。

在参考列时,即使您只使用一个验证表,并且在“表名”字段中不使用此表的别名,也必须始终在子句中包括此表名或别名。例如,您可以输入:

where f.application_id = a.application_id 

where form_table_name.application_id =
      application_table_name.application_id 

您可以使用 WHERE 子句中的特殊变量以允许值基于其它值。您可以使用的特殊变量包括

警告::block.field 机制仅限于反向兼容。使用此机制的值集不能与 Oracle 应用产品的以后版本兼容。

附加列字段

您在此处指定的内容必须符合一般语法:

sql_expression_such_as_column_name "Column Title Alias"(width)

此处的列标题别名或宽度均为可选项。如果您仅指定 SQL 片断而不指定别名或宽度,则列不会显示出来。您可以指定如下所示的几个以逗号隔开的表达式:

column_name_1 "Column 1 Title"(width), column_name_2 "Column 2 Title"(width), ... 

您也可以将信息名用作别名,此功能使列标题的转换变得容易。将信息名用作别名的语法为:

sql_expression_such_as_message name "APPL=<Application Short Name>;NAME=<Message Name>"(width)

您必须指定要显示的列宽度。您可以使用 (*) 来指定显示宽度取决于它所含值的列。对于不是单个列名的任何 SQL 表达式,您必须始终使用别名。对于使用多个表的值集,您必须始终在列名中包括表别名。例如:

f.user_form_name "Form Title"(30), a.application_name "Application Name"(*) 

如果显示了段或参数,值列将与参数或段提示一起显示为列标题。

您可以包括更复杂的 SQL 片断,例如级连列名和常数。例如:

 f.user_form_name "Form Title"(30), 
'Uses table: ' || t.user_table_name "Table Used"(30) 

允许父值字段

如果允许父值,则您可以在使用“段值”窗口的验证表中为值创建父值。

建议:建议您允许在会计弹性域中使用段的父值。父值可用于创建摘要帐户并增强 Oracle 应用产品的性能。但是,建议您不要允许其它值集的父值。允许其它值集的父值可能会对性能造成负面影响,因为弹性域必须根据表中的值和FND_FLEX_VALUES 表中的相关值的联合进行验证,并且会使用正常验证的额外查询。例如,如果用户使用段上的值列表,则列表必须从两个表中检索值。

如果您在“附加列”字段中指定附加列,或者在“隐藏标识列”字段中指定隐藏标识列,或者在验证表中存在 SUMMARY_FLAG 列,则必须在此字段中指定“否”。

请参阅:段值窗口

另请参阅

值和值集概览

选择值集的验证类型

执行验证表值集概览

使用验证表

创建表的权限和同名词

用于验证表的 WHERE 子句和约束变量

$FLEX$ 语法实例

值集窗口


         上一页  下一页          目录  索引  定位  词汇表  程序库