sql >> データベース >  >> RDS >> Oracle

制約違反に関するユーザーフレンドリーなエラーメッセージを表示する方法はありますか

    制約は、データベースが誤ったアプリケーションから自身を保護するために使用するものです。 ユーザーからではありません。

    つまり、制約違反はアプリケーションによってキャプチャされ、おそらく ユーザーに提示するためにクリーンアップされました。それを行わなかったアプリケーションは、何らかの形で欠陥があると思います。

    あなたのアプリケーション(少なくともこの場合)は決してそれが起こるのを見るべきではないので、私は「おそらく」と言います。そのようなものには、ほぼ確実にドロップダウン限定選択コントロールを使用する必要があります。コンボボックスまたは(ショック、ホラー)自由形式のテキスト入力フィールドを使用した場合は、再定義する必要があります。

    これは、もちろん、アプリケーションと制約がいずれかの時点で同期しなくなっていない限り、違反が発生しないことを意味します。しかし、それは、顧客があなたのアプリケーションに汚い小さな手を差し伸べるずっと前に、テストで捕らえられるべきものです。

    実際の質問に答えるために、制約違反に対してOracleから出力されるメッセージは変更できません。できる最善の方法は、制約にインテリジェントな名前を付けて、エンドユーザーにとって意味のあるものにすることです。

    ただし、この問題のユーザーへの提示は、データベース層ではなく、アプリケーション層の責任であると私は主張しています。



    1. REST APIを作成する方法は?

    2. RoomDatabase.Callback()のonCreate()は、.build()の呼び出しが成功した後に呼び出されませんでした

    3. SQLServer2005のアトミックUPSERT

    4. 翻訳番号をハードコードせずに、番号(通貨)をイタリアの通貨にスペルするPlsql