Как мне вставить в таблицу ссылок?

#oracle #plsql #oracle10g

#Oracle #plsql #oracle10g

Вопрос:

 CREATE TYPE artist_table_type AS TABLE OF REF artist_type;
/                                                         

INSERT INTO track_table VALUES (                              
   1,                                                     
   'test title',                                          
   123,                                                   
   to_date('12-09-1989', 'dd-mm-yyyy'),                   
   artist_table_type(                                     
            -- What goes here???
   ),                                                     
   artist_table_type());  
  

Я хочу вставить в эту таблицу вложенную таблицу ссылок на объекты. Могу ли я это сделать? Мне нужно будет разархивировать эту таблицу?

Комментарии:

1. Где хранятся artist_type объекты, на которые вы хотите указать?

2. Существует единственная таблица, в которой хранятся artist_type , и все объекты, которые ссылаются на них, хранят либо ссылки, либо таблицы ссылок на эти объекты.

Ответ №1:

Вы можете создать вложенную таблицу в SQL с помощью функций COLLECT и CAST. Например, если вы хотите выбрать объекты исполнителя из какой-либо другой таблицы на основе некоторого условия, я считаю, что это должно сработать:

 INSERT INTO track_table
  SELECT
   1,
   'test title',
   123,
   to_date('12-09-1989', 'dd-mm-yyyy'),
   CAST(COLLECT(REF(artists)) AS artist_table_type)
   artist_table_type()
  FROM
   artists
  WHERE <whatever the condition is for selecting the appropriate artists>
  ;
  

Ответ №2:

 INSERT INTO TABLE(this table is syntax dont think its name of the table..)

(SELECT t.nested_tbl_colm 
(nested_tbl_colm is nested table) 

FROM table_name t 
(table_name is the normal table whose one or more column is nested table here its nested_tbl_colm)  

WHERE t.tbl_colm= any input or conditions)

VALUES
(value to be inserted);

COMMIT;
  

Остальная часть столбца будет вставлена обычным образом, и приведенный выше код используется для вставки во вложенную таблицу.
Дайте мне знать, если вы не поняли.

Комментарии:

1. Спасибо за ответ, но не могли бы вы немного конкретизировать его? Я не уверен, что подразумевается под комментарием, а что должно быть заполнено мной.