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

REFのテーブルのスコープ

    スコープをCOLUMN_VALUEに追加します ネストされたテーブルの疑似列:

    ALTER TABLE cyclers_tab ADD SCOPE FOR ( COLUMN_VALUE ) IS cycler;
    

    その場合:

    INSERT INTO cycler ( name ) VALUES ( 'c1.1' );
    INSERT INTO cycler ( name ) VALUES ( 'c1.2' );
    
    INSERT INTO team (
      name,
      cyclers
    ) VALUES (
      'team1',
      t_cycler_list(
        ( SELECT REF(c) FROM cycler c WHERE name = 'c1.1' ),
        ( SELECT REF(c) FROM cycler c WHERE name = 'c1.2' )
      )
    );
    

    次に、行を挿入できます。ただし、同じオブジェクトタイプの別のテーブルがある場合:

    CREATE TABLE cycler2 OF t_cycler (
        name PRIMARY KEY
    );
    
    INSERT INTO cycler2 ( name ) VALUES ( 'c2.1' );
    

    そして、やってみてください:

    INSERT INTO team (
      name,
      cyclers
    ) VALUES (
      'team2',
      t_cycler_list(
        ( SELECT REF(c) FROM cycler2 c WHERE name = 'c2.1' )
      )
    );
    

    次に、エラーが発生します:

    db <> fiddle こちら




    1. Oracle ダンプ ファイルを Oracle データベースにアップロードする方法:AWS RDS

    2. Android-Ruby on Rails-MySQL

    3. 日付を事前定義された形式と比較するplsql

    4. adopフェーズで何が起こるか