【问题标题】:Using Oracle partition and storage options with Redgate Schema Compare fails将 Oracle 分区和存储选项与 Redgate 模式比较一起使用失败
【发布时间】:2019-06-05 11:56:37
【问题描述】:

我正在尝试为我们的项目引入新的审计表。在部署过程中,我们使用 redgate 的 Schema Compare for Oracle(版本 4.0.8.420)。

表格看起来像这样:

create table MY_SCHEMA.MY_TEST_AUDT (
    TEST_ID                        NUMBER(19),
    -- all sorts of business fields, omitted for clarity
    AUDT_CRT_DTM                   TIMESTAMP DEFAULT SYSTIMESTAMP,
    AUDT_ACTN_CODE                 VARCHAR2(1),
    AUDT_CRT_USR_NM                VARCHAR2(128) DEFAULT USER,
    AUDT_CLIENT_IDENTIFIER         VARCHAR2(256),
    AUDT_CLIENT_INFO               VARCHAR2(256)
)
TABLESPACE MY_TABLESPACE
PCTFREE 0
INITRANS 10
STORAGE (
    INITIAL          64K
    NEXT             1M
    MINEXTENTS       1
    MAXEXTENTS       UNLIMITED
    PCTINCREASE      0
    BUFFER_POOL      DEFAULT
)
COMPRESS FOR OLTP
NOCACHE
PARTITION BY RANGE (AUDT_CRT_DTM)
INTERVAL(interval '1' month)
(
    PARTITION P0 VALUES LESS THAN (date '2018-11-01')
    PCTFREE 0
    INITRANS 10
)
/

我第一次运行时遇到了关于存储子句的错误

解析失败并显示消息 SyntaxError。意外的令牌“K”

当我摆脱存储条款(因为我可以使用默认值)时,它开始抱怨分区条款,这就是我对软件不太满意的地方。

解析失败并显示消息 SyntaxError。意外的令牌“PARTITION”(第 35 行,第 1 列)符号 Id

我尝试打开和关闭所有存储选项,但没有任何效果。我尝试了最新的 5.2 版本,对文件进行了简单的比较,但它也不起作用。我试图在 redgate 论坛上发布它,但我的帖子已经被卡住了两天了。

我正在使用脚本文件夹比较,上面提到的源文件和目标文件没有文件,Oracle 11g 脚本。

我已经设法让它在没有分区的情况下工作。我不得不用分号替换斜线并将 8K 和 1M 切换到完整值。但我仍然无法创建分区。

create table MY_SCHEMA.MY_TEST_AUDT (
    TEST_ID                        NUMBER(19),
    -- all sorts of business fields, omitted for clarity
    AUDT_CRT_DTM                   TIMESTAMP DEFAULT SYSTIMESTAMP,
    AUDT_ACTN_CODE                 VARCHAR2(1),
    AUDT_CRT_USR_NM                VARCHAR2(128) DEFAULT USER,
    AUDT_CLIENT_IDENTIFIER         VARCHAR2(256),
    AUDT_CLIENT_INFO               VARCHAR2(256)
)
TABLESPACE MY_TABLESPACE
PCTFREE 0
INITRANS 10
STORAGE (
    INITIAL          65536
    NEXT             1048576
    MINEXTENTS       1
    MAXEXTENTS       UNLIMITED
    PCTINCREASE      0
    BUFFER_POOL      DEFAULT
)
COMPRESS FOR OLTP
NOCACHE;

非常感谢任何帮助。

阿兰

为了完整起见,这是我的 DatabaseInformation.xml 文件

<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<ScriptsFolderInformation version="2" type="ScriptsFolderInformation">
  <DatabaseVersion>ElevenG</DatabaseVersion>
</ScriptsFolderInformation>

【问题讨论】:

    标签: oracle redgate schema-compare


    【解决方案1】:

    我询问了 redgate 支持并得到了答复。

    当您直接使用模式时,它似乎工作得很好(我自己没有尝试过)。仅当您将脚本文件夹与脚本文件夹进行比较时才会出现此问题。

    要使分区正常工作,您必须删除 NOCACHE 关键字。然后一切正常。

    Redgate 现在有一个支持这些关键字的错误报告 (OC-1026)

    这是有效的版本:

    create table MY_SCHEMA.MY_TEST_AUDT (
        TEST_ID                        NUMBER(19),
        -- all sorts of business fields, omitted for clarity
        AUDT_CRT_DTM                   TIMESTAMP DEFAULT SYSTIMESTAMP,
        AUDT_ACTN_CODE                 VARCHAR2(1),
        AUDT_CRT_USR_NM                VARCHAR2(128) DEFAULT USER,
        AUDT_CLIENT_IDENTIFIER         VARCHAR2(256),
        AUDT_CLIENT_INFO               VARCHAR2(256)
    )
    TABLESPACE MY_TABLESPACE
    PCTFREE 0
    INITRANS 10
    STORAGE (
        INITIAL          65536
        NEXT             1048576
        MINEXTENTS       1
        MAXEXTENTS       UNLIMITED
        PCTINCREASE      0
        BUFFER_POOL      DEFAULT
    )
    COMPRESS FOR OLTP;
    

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 1970-01-01
      • 2018-03-23
      相关资源
      最近更新 更多