Oracle 有什么方法可以截获错误消息并使其更友好?

Oracle 有什么方法可以截获错误消息并使其更友好?,oracle,oracle-apex,Oracle,Oracle Apex,我在其他地方寻找过答案,但还没有找到我需要知道的 我有3个表,订单详细信息、订购的产品和产品详细信息。前两个用于主细节表单,以显示订单和一起订购的项目。Products_Ordered表有一个由两个外键组成的复合主键,第一个是Order_Details表中的主键,第二个是Product_Details表中的主键。它们共同确保一种类型的产品只能添加到订单中一次。如果有人想订购多个产品,则可以更改记录中的“数量”字段以反映这一点。到目前为止一切似乎都很好 我的问题是,在主详细信息表单中将产品添加到订

我在其他地方寻找过答案,但还没有找到我需要知道的

我有3个表,订单详细信息、订购的产品和产品详细信息。前两个用于主细节表单,以显示订单和一起订购的项目。Products_Ordered表有一个由两个外键组成的复合主键,第一个是Order_Details表中的主键,第二个是Product_Details表中的主键。它们共同确保一种类型的产品只能添加到订单中一次。如果有人想订购多个产品,则可以更改记录中的“数量”字段以反映这一点。到目前为止一切似乎都很好

我的问题是,在主详细信息表单中将产品添加到订单时,我使用了一个下拉列表来选择要添加到订单的产品。它的显示值是产品名称,返回值是product_Details表中产品的主键

我喜欢这样,因为用户只需简单地选择产品并向表中添加一定数量的产品就可以了。除了一种情况外,它还可以很好地用于插入和更新操作

如果用户在行中选择相同的产品,然后提交表,则数据库会尝试将该产品添加到订单中两次,抛出“ORA-00001:违反唯一约束”错误。显然,这是因为表的主键中使用了产品ID

我不想让用户像那样向表中添加两条记录,而是想强制他们相应地修改quantity字段。出现的错误消息对用户不是很友好,因此我的问题是如何检测此错误并显示更友好的错误,而不是告诉他们更改数量字段

*如果这是不可能的,那么有没有一种方法可以从下表行的值下拉列表中隐藏任何已选择的产品?我没有过多地研究这个问题,因为当用户尝试添加比下拉列表中可用产品更多的行,并且没有更多产品值可显示时,肯定会变得复杂


我对这个很陌生,所以请友好一点。非常感谢您的帮助:D

这里有一个链接,详细介绍了所有内容:

部分 预定义的PL/SQL异常 结合: 定义自己的PL/SQL异常 和 定义自己的错误消息:过程引发\u应用程序\u错误

希望对你有帮助