Sql 如何在引发oracle预定义异常时提供错误消息
我在SQL中的索引上增加了DUP_VAL_,我想将一些自定义错误消息与之关联。 现在在执行代码之后Sql 如何在引发oracle预定义异常时提供错误消息,sql,oracle,plsql,Sql,Oracle,Plsql,我在SQL中的索引上增加了DUP_VAL_,我想将一些自定义错误消息与之关联。 现在在执行代码之后 IF ___SOME_CONDITION___ THEN RAISE DUP_VAL_ON_INDEX; END IF 我看到以下信息: 00001. 00000 - "unique constraint (%s.%s) violated" 如何提供自定义消息来替换这些“%s”?您通常不会自己提出这些预定义错误。相反,您可以让数据库引发它们(例如,您确实试图插入违反唯一约束/索引的行),
IF ___SOME_CONDITION___ THEN
RAISE DUP_VAL_ON_INDEX;
END IF
我看到以下信息:
00001. 00000 - "unique constraint (%s.%s) violated"
如何提供自定义消息来替换这些“%s”?您通常不会自己提出这些预定义错误。相反,您可以让数据库引发它们(例如,您确实试图插入违反唯一约束/索引的行),或者引发您自己的自定义错误(例如,
raise\u application\u error()
)并在此处提供必要的信息。Oracle文档说明您可以使用这些预定义的异常,并提供了一个示例。我认为这不是一个有效的答案。@Sergey这是一个有效的答案-“你通常不会自己提出这些预定义的错误”。相反,定义并提出您自己的unique\u constraint\u违犯的exception(参见示例)。(我不知道如何替换预定义异常文本中的占位符。)@Sergey完全有可能跳下悬崖。这并不意味着这样做一定是个好主意!是的,您当然可以随意提出预定义的错误,但是您必须记住,Oracle没有为您提供将参数传递给它们的方法。@Boneist Oracle没有为您提供将参数传递给它们的方法。谢谢,这是我一直在寻找的。