読んでいただきありがとうございます。私は現在、架空の店舗について約10のエンティティのデータベースを作成しています。したがって、主体はCustomer_Orderであり、このトリガーの目的は、Customer_orderで行が挿入または更新されたときに、顧客の郵便番号がヌルでないことをチェックすることです。 nullの場合、トリガーは警告をスローする必要があります。Oracleトリガーステートメント条件が何らかの理由で満たされていない場合は、
CREATE OR REPLACE TRIGGER Check_Order
BEFORE INSERT OR UPDATE ON Customer_Order
for each row
DECLARE ShipAddress customer.ship_address.post_code%TYPE;
BEGIN
IF (ShipAddress = '') then
RAISE_APPLICATION_ERROR(-20103, 'Shipping Address is empty');
END IF;
END;
.
run
私は「エルス」はありません知っているが、私はそれがないテーブルを更新する以外に他のアクションを持っていません。 ShipAddressについて心配する必要はありません。より簡単な属性でこれを試しました。単にトリガーしません。行が挿入または更新されるため、条件を満たすことはできません。ステートメントレベルのトリガーの代わりにそれぞれを使用しているためですか?
ああ、私は参照してください。私はaddressTypeと呼ばれる型を作成したので、nullでないと宣言する方法を実際には理解できませんでした。私のシステムでは、すべての顧客と従業員( "Person"のサブタイプ)は、それ自身のさまざまな値を含むaddressTypeを継承しており、オブジェクトテーブルを作成せずにNOT NULLとして実際に設定する方法を決して決めることはできません。あなたが方法を知っているなら、それを分かち合う時間があればそれを感謝します。ご協力いただきありがとうございます! –
@MoMoosa:あなたのタイプの属性を宣言する方法はありません。 –