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

Oracle:オブジェクトタイプ列のデフォルト値を指定する

    これは不可能のようです。

    回避策の1つは、トリガーを使用することです。

    CREATE OR REPLACE TRIGGER test_trigger
      BEFORE INSERT OR UPDATE
    ON test_table
      FOR EACH ROW
    WHEN ( new.test_attr IS NULL )
    BEGIN
      :new.test_attr := NEW test_t();
    END test_trigger;
    /
    

    ちなみに、デフォルト以外のコンストラクターを完全に無視するわけではなく、デフォルトのコンストラクターをオーバーライドします

    CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
    RETURN SELF AS RESULT
    

    DEFAULT NEW test_t(1)を使用してテーブルを定義しようとすると、例外が発生します :




    1. MariaDBでのDAYOFMONTH()のしくみ

    2. mysqlからの長いポーリング情報が機能しない

    3. Oracleシーケンスを使用してログIDをjdbcから2つのテーブルに挿入しますか?

    4. Rubymysql2エラー