Как вставить данные в таблицу разделов, которые не определены в разделе? - PullRequest
1 голос
/ 01 декабря 2009

Кто-нибудь может сказать мне, как мы можем вставить данные в многораздельную таблицу, которая не удовлетворяет условию разделения

Ответы [ 2 ]

5 голосов
/ 01 декабря 2009

вы получите ошибку ORA-14400:

SQL> CREATE TABLE t (ID NUMBER)
  2  PARTITION BY RANGE (ID)
  3  (  PARTITION t1 VALUES LESS THAN (100),
  4     PARTITION t2 VALUES LESS THAN (200)
  5  );

Table created

SQL> insert into t values (1);

1 row inserted

SQL> insert into t values (201);

insert into t values (201)
            ~
ORA-14400: inserted partition key does not map to any partition

Чтобы избежать этого, вы можете использовать раздел по умолчанию с LESS THAN (MAXVALUE):

SQL> CREATE TABLE t (ID NUMBER)
  2  PARTITION BY RANGE (ID)
  3  (  PARTITION t1 VALUES LESS THAN (100),
  4     PARTITION t2 VALUES LESS THAN (200),
  5     PARTITION tmax VALUES LESS THAN (MAXVALUE)
  6  );

Table created
0 голосов
/ 01 декабря 2009

Если вы имеете в виду таблицы с секционированным диапазоном и используете 11g, изучите определение таблиц с интервальным разделением. Это похоже на разделение по диапазонам, за исключением того, что Oracle автоматически создаст новые разделы или разделит существующие разделы. Если вы работаете в более раннем выпуске, то предложение Винсента о создании раздела MAXVALUE является ответом для разделения диапазонов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...