【问题标题】:Is there a way to change the exception message in oracle?有没有办法改变oracle中的异常消息?
【发布时间】:2011-12-03 07:02:35
【问题描述】:

我有一个基于 Oracle 数据库的 PHP 应用程序。在数据库中,定义了一些约束。当他们受到侵犯时,我会收到一条简单的constraint violated 消息。我想向用户显示一些自定义消息。

有没有办法在约束的定义中定义自定义错误消息?或者你会建议我如何处理这个问题?

谢谢!

【问题讨论】:

  • 我不想。这个问题需要保持通用性。虽然,我可以举个例子。假设我想在我的学生表中插入一个新条目。对于几个我定义了约束的列,例如 name 必须不为 null,surname 必须不为 null,age 必须为正数,等等。当我插入我的新学生时,其中一个约束可能会被违反,并且我会收到一条用户不太友好的错误消息。这就是为什么我想在每个约束中定义一个错误消息,当它被违反时我会收到。能够将其展示给用户,以便他理解。

标签: php sql oracle


【解决方案1】:

捕获异常并以您认为合适的方式通知用户。

php: catch exception and continue execution, is it possible?

【讨论】:

    【解决方案2】:

    问问自己为什么您的无效数据会到达您的数据库?

    您应该对您的输入实施强验证以防止这种情况发生,因为约束只是作为最后的手段,而不是验证数据的前线。

    创建验证例程,捕获并报告(带有有用消息)无效数据,仅发送要插入数据库的有效数据。

    这可以使用 PL/SQL 存储过程/包/函数来完成,一篇关于将它们用于 CRUD 操作的好文章在这里: http://www.devshed.com/c/a/Oracle/Developing-Simple-PL-SQL-Stored-Procedures-for-CRUD-Operations/

    或者您可能会为此目的使用数据库触发器,尽管“BEFORE”操作触发器不如在 PL/SQL 验证包中批量处理集合数据高效。

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      相关资源
      最近更新 更多