定义在创建表时如何在列中存储数据

时间:2012-03-15 11:42:13

标签: oracle postgresql postgis

我正在尝试通过编辑Oracle中生成的脚本将Oracle数据库移植到Postgres,并且遇到了一些几何类型列。我正在使用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 个答案:

答案 0 :(得分:2)

您可以忽略Oracle脚本中的存储设置。它们只处理列值的物理存储,并且根本不影响列的使用。

PostgreSQL以不同方式处理自定义数据类型。

保留原始CREATE TABLE,您无需更改任何内容。