sql >> Databáze >  >> RDS >> Oracle

ROZSAH pro tabulku REF

Chcete přidat rozsah do COLUMN_VALUE pseudosloupec vnořené tabulky:

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

Pokud pak uděláte:

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

Poté můžete vložit řádek. Ale pokud máte jinou tabulku stejného typu objektu:

CREATE TABLE cycler2 OF t_cycler (
    name PRIMARY KEY
);

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

A zkuste to udělat:

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

Pak se zobrazí chyba:

db<>fiddle zde




  1. ORA-00907 Chybějící problém s pravou závorkou - vyberte s pořadím pomocí vnitřního vkládacího dotazu

  2. Žádné mapování dialektu pro typ JDBC:2003

  3. Závislosti Maven nejsou v Eclipse vyřešeny

  4. regex, abyste našli a vyhnuli se dvojitým tečkám v Oracle