Oracle
 sql >> база данни >  >> RDS >> Oracle

Създайте вложена таблица и вмъкнете данни само във вътрешната таблица

Можете да използвате COALESCE( salary_history, salary_list() ) MULTISET UNION ALL salary_list(:your_new_value) за да добавите новата стойност към стария списък (или да създадете нов списък, ако не съществува).

Настройка на схема на Oracle 11g R2 :

СЪЗДАВАЙТЕ ИЛИ ЗАМЕНЕТЕ ТИП salary_list КАТО ТАБЛИЦА С НОМЕР;/СЪЗДАВАЙТЕ ТАБЛИЦА служители( id НОМЕР, salary_history salary_list) ВЛОЖЕНА ТАБЛИЦА salary_history СЪХРАНЯВАНЕ КАТО раздел salary_history_tab/ВМЪКНЕТЕ В СТОЙНОСТИ на служители ( 1, NULL )/ 

Заявка 1 :

АКТУАЛИЗИРАНЕ на EmploymentsSET salary_history =COALESCE( salary_history, salary_list() ) MULTISET UNION ALL salary_list( 500 )WHERE id =1SELECT * FROM служители 

Резултати :

<предварителен код>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500 |

Заявка 2 :

АКТУАЛИЗИРАНЕ на EmploymentsSET salary_history =COALESCE( salary_history, salary_list() ) MULTISET UNION ALL salary_list( 700 )WHERE id =1SELECT * FROM служители 

Резултати :

<предварителен код>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500 700 |

Заявка 3 :

АКТУАЛИЗИРАНЕ на EmploymentsSET salary_history =COALESCE( salary_history, salary_list() ) MULTISET UNION ALL salary_list( 500 )WHERE id =1SELECT * FROM служители 

Резултати :

<предварителен код>| ID | SALARY_HISTORY ||----|----------------|| 1 | 500,700,500 |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01618

  2. Какъв е синтаксисът за дефиниране на процедура на Oracle в друга съхранена процедура?

  3. Материализирани изгледи - Идентифициране на последното опресняване

  4. Заявката за актуализация е неправилна

  5. Как мога да избера 10-ти, 20-ти, 30-ти ... ред от резултата от друга заявка за избор