ON INSERT
Oracle データベースでこのファンキーなトリガーを作成する必要があります。
ソースコードの一部が欠落しているこの古いプロジェクトを受け取ったので、データベースのみを使用していくつかの魔法を働かなければなりません。トリガーは、別のビューからの欠損値で挿入時に行を更新する必要があります。
以下は、作成されたサンプル データの一部です。
私はこのテーブルを持っています。それをTABLE1と呼びましょう。次に、このビューがあります。それをVIEW2と呼びましょう。ビューでは、同じコードを持つ複数のレコードが存在する可能性がありますが、それらは完全に重複しているため、どの行も有効です。この重複はごくわずかですが、顧客はまだ除外していません。
- TABLE1とVIEW1には次のフィールドがあります
(CODE, PARTNER, COUNTRY)
。 - TABLE1にもフィールドがあります
COMMENT
。
すべてのフィールドは varchar 型です。
このフィールドCOMMENT
にはタイプがあり、値に「-XXX-CODE」のvarchar
ような接尾辞が追加されています。
たとえば、「some comment-XXX-123」です。
これが私のシナリオです:
これはTABLE1に挿入されます:
**CODE;PARTNER;COUNTRY;COMMENT**
- 123;TEST;USA;SOME COMMENT
- 145;TEST2;GB;SOME COMMENT
- NULL;NULL;NULL;SOME COMMENT-XXX-154
ここでトリガーが開始されます。 - IF フィールドCODE IS NULL の場合、トリガーが起動し、 - XXX- プレフィックスに基づいてコードを解析します (この例では値 154 を使用) - VIEWで選択を行います(select code = 154 の VIEW1 からのコード、パートナー、国 - レコードが見つかった場合は、TABLE1をcode, partner and country
値で更新する必要があります
まあ、状況がはっきりしていることを願っています。私はオラクルの経験がないので、私の問題に対する解決策は大歓迎です。
感謝。