Определить, как хранить данные в столбце при создании таблицы - PullRequest
0 голосов
/ 15 марта 2012

Я пытаюсь перенести базу данных Oracle в Postgres, отредактировав сценарии, сгенерированные в Oracle и натолкнувшиеся на некоторые столбцы типа геометрии. Я использую PostGIS, чтобы позволить мне использовать типы геометрии, и добавляю столбцы, используя следующее:

CREATE TABLE TABLE_NAME
(
  ID           BIGINT                      NOT NULL,
  GEOM         GEOMETRY,
  CENTROID     GEOMETRY,
  R_CENTROID   GEOMETRY,
  NUM_POINTS   BIGINT,
  PK           BIGINT,
  EXTENT       GEOMETRY
);

В редакторе все проходит нормально, однако сгенерированный скрипт Oracle указывает, как хранить данные в столбце геометрии следующим образом:

VARRAY "R_EXTENT"."SDO_ELEM_INFO" STORE AS LOB (
  ENABLE       STORAGE IN ROW
  CHUNK        8192
  RETENTION
  CACHE
  LOGGING
  INDEX       (
        STORAGE    (
                   INITIAL          64K
                    MINEXTENTS       1
                    MAXEXTENTS       UNLIMITED
                    PCTINCREASE      0
                    BUFFER_POOL      DEFAULT
                   ))
        STORAGE    (
                   INITIAL          64K
                   MINEXTENTS       1
                   MAXEXTENTS       UNLIMITED
                   PCTINCREASE      0
                   BUFFER_POOL      DEFAULT
                   ))

Это всего лишь один столбец, конечно, но как этого достичь в postgres? Или, более конкретно, можно ли сделать полную остановку.

1 Ответ

2 голосов
/ 15 марта 2012

Вы можете игнорировать настройки хранилища из скрипта Oracle.Они касаются только физического хранения значений столбца и не влияют на использование столбца вообще.

PostgreSQL по-разному обрабатывает пользовательские типы данных.

Просто сохраните оригинал CREATE TABLE, вам не нужно ничего менять.

...