【问题标题】:Define how to store data in column on creation of table定义如何在创建表时将数据存储在列中
【发布时间】:2012-06-11 22:39:04
【问题描述】:

我正在尝试通过编辑在 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 中实现呢?或者更重要的是,它可以完全停止。

【问题讨论】:

    标签: oracle postgresql postgis


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 2010-10-31
      • 1970-01-01
      相关资源
      最近更新 更多