Oracle11g 检查oracle窗体多记录块中的重复值

Oracle11g 检查oracle窗体多记录块中的重复值,oracle11g,oracleforms,Oracle11g,Oracleforms,我想要的是,如果插入的记录已经是multi-record块中的一条记录,则在移动到下一行时显示警报 我必须把它放在什么触发器里 您可以使用几个选项 一种是发布输入的值(在WHEN-NEW-RECORD-INSTANCE中)触发器。它会,嗯,发布你到目前为止输入的所有内容。然后,您可以编写一个WHEN-VALIDATE-ITEM触发器,该触发器从该表中选择,并检查该值是否已经存在。或者,如果该列上存在唯一约束,则数据库将自行执行其工作,即引发异常 另一个选项是逐字循环一个块中的所有行,并将第一行

我想要的是,如果插入的记录已经是multi-record块中的一条记录,则在移动到下一行时显示警报


我必须把它放在什么触发器里

您可以使用几个选项

一种是发布输入的值(在WHEN-NEW-RECORD-INSTANCE中)触发器。它会,嗯,发布你到目前为止输入的所有内容。然后,您可以编写一个
WHEN-VALIDATE-ITEM
触发器,该触发器从该表中选择
,并检查该值是否已经存在。或者,如果该列上存在
唯一约束
,则数据库将自行执行其工作,即引发异常

另一个选项是逐字循环一个块中的所有行,并将第一行的值与所有其他行进行比较,然后将第二行的值与所有行进行比较,以此类推

或者,您可以使用记录组(通常用于值列表)。基本上,您需要检查您输入的值是否存在于记录组中。更多信息,以及FMB文件,请访问

或者,您可以使用所述的计算项目(同时附上FMB)


正如你所看到的,有很多方法可以做到这一点;探索其中的每一个选项,并选择您认为最有用/最吸引人/最易于实施的选项。

您可以使用几个选项

一种是发布输入的值(在WHEN-NEW-RECORD-INSTANCE中)触发器。它会,嗯,发布你到目前为止输入的所有内容。然后,您可以编写一个
WHEN-VALIDATE-ITEM
触发器,该触发器从该表中选择
,并检查该值是否已经存在。或者,如果该列上存在
唯一约束
,则数据库将自行执行其工作,即引发异常

另一个选项是逐字循环一个块中的所有行,并将第一行的值与所有其他行进行比较,然后将第二行的值与所有行进行比较,以此类推

或者,您可以使用记录组(通常用于值列表)。基本上,您需要检查您输入的值是否存在于记录组中。更多信息,以及FMB文件,请访问

或者,您可以使用所述的计算项目(同时附上FMB)

正如你所看到的,有很多方法可以做到这一点;探索其中的每一项,并选择您认为最有用/最吸引人/最易于实施的一项