Joomla 3.1 Templates by FatCow Coupon

Создание таблиц - краткий обзор

Категория: Блог Опубликовано 24.05.2017

Нашел вот такую статью, показалась интересной - перевел, и внес некоторые корректировки
Это некий краткий - на одну страницу, обзор с примерами на тему - создание таблиц в oracle
Чтобы пользователь мог создать таблицу он должен обладать соответствующей системной привилегией create table.
Кроме того в дисковом пространстве должно быть достаточно места для создания таблиц.

Стандартная heap таблица
Рассмотрим пример создания простой таблицы 

create table t (
  a number,
  b varchar2(10)
)


Так же можно создать таблицы ограничение первичный ключ

create table orders (
  order_id number,
  order_dt date,
  cust_id  references customer
  constraint pk_orders (order_id) using index tablespace ts_idx
)





Таблица организованная по индексу - index organized tables (IOT)

create table iot_ (
  a number,
  b varchar2(10),
constraint pk_iot_ primary key (a, b)
)
organization index;



Временная таблица
Следующий пример показывает работу с временными таблицами. используется пакет redo_diff. 

create global temporary table gtt_ (
  x_ varchar2(100)
) on commit delete rows;

create table t_ (
  x_ varchar2(100)
);

exec redo_diff.diff_it;

declare
  i number;
begin
  for i in 1 .. 1000 loop
    insert into gtt_ values(dbms_random.string('a',99));
  end loop;
end;
/

exec redo_diff.diff_it;

declare
  i number;
begin
  for i in 1 .. 1000 loop
    insert into t_ values(dbms_random.string('a',99));
  end loop;
end;
/

exec redo_diff.diff_it;



Внешняя таблица (external table)
Следующий пример демонстрирует создание внешней таблицы. 

create table (....)
organization external (
  type              oracle_loader
  default directory some_dir
  access parameters (
    records delimited  by newline
    fields  terminated by ','
    missing field are values null
  )
  location ('some_file.csv')
)
reject limit unlimited;



Вложенная таблица

create or replace type item as object (
  item_id Number  ( 6  ),
  descr   varchar2(30  ),
  quant   Number  ( 4,2)
);
/
create or replace type items as table of item;
/
create table bag_with_items (
  bag_id                   number(7)     primary key,
  bag_name                 varchar2(30)  not null,
  the_items_in_the_bag     items         
) nested table the_items_in_the_bag store as bag_items_nt;



добавим ограничение - первичный ключ
alter table bag_items_nt add constraint uq_item_id unique(item_id);

Таблица XMLType для хранения XML

create table table_name of xmltype;

create table table_name of xmltype XMLSchema "some_url" element "root-element";

create table table_name (columns..., xml_doc) XMLType xmltype column xml_doc element "root-element";


Creates a table for XML DB. 

Create table ... as select
Создать таблицу из запроса 

Создание таблицы из рекомендуется с опцией nologging 
вставка из запроса create table .. as select statement is nologging.. 

Так же при создании таблиц важны параметры Mintrans , Maxtrans регулирующие одновременный доступ к таблице

Просмотров: 272