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

Oracle PL/SQL колекции - Създаване на вложена таблица в базата данни

В Oracle вложена таблица може да се съхранява като колона на база данни. Това означава, че цялата вложена таблица се съдържа в един ред от таблицата на базата данни и всеки ред от базата данни може да съдържа различна вложена таблица. За да съхраните вложена таблица в базата данни, трябва да използвате CREATE TYPE оператор за създава типа на вложена таблица, а не оператор за тип в PL/SQL блок.

С помощта на CREATE TYPE , типът се съхранява в речника на данните и по този начин е достъпен за използване като тип колона. Следният пример илюстрира как да създадете вложена таблица като колона на база данни.

Oracle PL/SQL – Създаване на вложена таблица в базата данни

CREATE TYPE BookObj AS OBJECT (
title VARCHAR2(40),
author VARCHAR2(40),
catalog_number NUMBER(4)
);

CREATE TYPE BookList AS TABLE OF BookObj;

CREATE TABLE course_material (
department CHAR(3),
course NUMBER(3),
required_reading BookList )
NESTED TABLE required_reading STORE AS required_tab;

Има няколко неща, които трябва да се отбележат относно горния списък и създаването на вложени таблици в базата данни:

  • Типът на таблицата е проектиран с CREATE TYPE изявление, за да може да се съхранява в речника на данните.
  • Типът на таблицата се използва в дефиницията на таблицата, точно като обект на колона.
  • За всяка вложена таблица в дадена таблица на база данни,  NESTED TABLE е необходима клауза. Тази клауза указва името на таблицата на магазина.

Таблицата за съхранение е генерирана от системата таблица, която се използва за съхраняване на действителните данни във вложената таблица. Тези данни не се съхраняват в ред с останалите колони на таблицата; той се съхранява отделно.

required_reading колоната ще съхранява REF в required_tab таблица, където ще се съхранява списъкът с книги. За всеки ред course_material , required_reading съдържа REF към съответните редове в задължителния раздел.

ЗАБЕЛЕЖКА

Таблицата на магазина (required_tab в горния пример) може да съществува в друга схема и може да има различни параметри за съхранение от основната таблица. Таблицата на магазина може да бъде описана и съществува в user_tables , но не може да бъде достъпен директно.

Ако се опитате да направите заявка или да промените директно таблицата на магазина, ще получите грешката на Oracle „ORA-22812:не може да препраща към таблицата за съхранение на колона за вложена таблица“. Съдържанието на таблицата на магазина се манипулира чрез SQL на главната таблица.

Вижте също:

  • Oracle PL/SQL – Колекции (вложени таблици)
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изпълним процедура с процедурата DBMS_SCHEDULER.CREATE_JOB

  2. PLS-00201 идентификатор „PACKAGENAME.PROCEDURENAME“ трябва да бъде деклариран

  3. Oracle копира данни в друга таблица

  4. Как да експортирате данни в CSV файл в Oracle с помощта на PL SQL процедура

  5. Oracle – Материализиран изглед все още е достъпен по време на пълно опресняване. Как работи това?