Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ZAKRES tabeli REF

Chcesz dodać zakres do COLUMN_VALUE pseudokolumna tabeli zagnieżdżonej:

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

Jeśli to zrobisz:

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

Następnie możesz wstawić wiersz. Ale jeśli masz inną tabelę tego samego typu obiektu:

CREATE TABLE cycler2 OF t_cycler (
    name PRIMARY KEY
);

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

I spróbuj zrobić:

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

Następnie pojawia się błąd:

db<>fiddle tutaj




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wdrażaj wiele instancji obliczeniowych Oracle przy użyciu puli instancji i terraform

  2. Powtórz każdą wartość n razy jako wiersze w SQL

  3. Archiwizator zawieszony ze względu na KOMPATYBILNY ORA-16484

  4. Czy możliwe jest wykonanie wielu instrukcji w jednym zapytaniu przy użyciu DBD::Oracle?

  5. Problem z fokusem w systemie Vista podczas wywoływania sprawdzania pisowni Microsoft Word z Oracle Forms