Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在引发oracle预定义异常时提供错误消息_Sql_Oracle_Plsql - Fatal编程技术网

Sql 如何在引发oracle预定义异常时提供错误消息

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”?您通常不会自己提出这些预定义错误。相反,您可以让数据库引发它们(例如,您确实试图插入违反唯一约束/索引的行),

我在SQL中的索引上增加了DUP_VAL_,我想将一些自定义错误消息与之关联。 现在在执行代码之后

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没有为您提供将参数传递给它们的方法。谢谢,这是我一直在寻找的。