sql >> Databasteknik >  >> RDS >> Oracle

OMFATTNING för en tabell över REF

Du vill lägga till omfattningen till COLUMN_VALUE pseudo-kolumn i den kapslade tabellen:

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

Om du sedan gör:

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' )
  )
);

Sedan kan du infoga raden. Men om du har en annan tabell av samma objekttyp:

CREATE TABLE cycler2 OF t_cycler (
    name PRIMARY KEY
);

INSERT INTO cycler2 ( name ) VALUES ( 'c2.1' );

Och försök att göra:

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

Då får du felet:

db<>fiol här




  1. Få sista dagen i föregående månad i Oracle Function

  2. Kontrollera om användaren redan är inloggad på asp.net-webbplatsen

  3. Hur man hämtar poster som innehåller alfanumeriska tecken + blanksteg

  4. Fråga PostgreSQL med Npgsql och Entity Framework med unaccent