2011-10-07 115 views
1

我在Oracle DB上有一個PHP應用程序。在數據庫中,定義了一些約束條件。當他們受到侵犯時,我收到一條明顯的消息。我想向用戶顯示一些自定義消息。有沒有辦法在oracle中更改異常消息?

有沒有辦法在約束定義中定義自定義錯誤信息?或者你會如何建議我解決這個問題?

謝謝!

+1

你能顯示一些代碼嗎? –

+0

我不想。這個問題需要保持通用。雖然,我可以舉一個例子。假設我想在我的學生表中插入一個新條目。對於幾個列,我定義了約束條件,如名稱必須不爲空,姓氏必須爲空,年齡必須爲正值,等等。當我插入新學生時,其中一個約束可能會被違反,並且我收到一條不太友好的錯誤消息。這就是爲什麼我想定義每個約束條件中的錯誤消息,當違規時我會收到這個錯誤消息。爲了能夠顯示給用戶,使他理解它。 – Tchypp

+2

請參閱http://stackoverflow.com/questions/6068792/is-there-way-to-give-user-friendly-error-message-on-constraint-violation –

回答

0

問自己,爲什麼你的無效數據到達您的數據庫?

爲了防止這種情況發生,您應該對您的輸入實施強有力的驗證,因爲約束僅作爲最後手段存在,而不是驗證數據的第一線。

創建驗證例程,用於捕獲並回報(帶有有用消息)的無效數據,僅發送要插入數據庫的有效數據。

這可以使用PL/SQL存儲過程/包/功能,使用它們的CRUD操作的好文章做的是在這裏: http://www.devshed.com/c/a/Oracle/Developing-Simple-PL-SQL-Stored-Procedures-for-CRUD-Operations/

或者你可能會使用數據庫觸發器用於此目的,雖然「 BEFORE「操作觸發器不如PL/SQL驗證包中的批量處理收集數據那樣高效。

希望這有助於...

相關問題