Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Имате нужда от помощ, за да преместите 8k стойност на колона от R в колона CLOB (Oracle)

  2. Създаването на 32-битов ODP.Net OracleConnection обект е много бавно

  3. ORA-00907 Проблем с липсваща дясна скоба - изберете с ред чрез вътрешна заявка за вмъкване

  4. В тригер на Oracle мога ли да присвоя ново и старо към променлива тип ред?

  5. Как да получите достъп до базата данни на Oracle през мрежа?