将Oracle分区和存储选项与Redgate架构比较一起使用失败



我正试图为我们的项目引入新的审计表。在部署过程中,我们使用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">

当我去掉storage子句(因为我可以使用默认值)时,它开始抱怨分区子句,这就是我对软件不太满意的地方。

解析失败,返回消息SyntaxError。意外的标记"PARTITION"(第35行,第1列)符号Id

我试着打开和关闭所有存储选项,但都没有成功。我尝试了最新的5.2版本,对文件进行了简单的比较,但也不起作用。我试着把它发布在红门论坛上,但我的帖子已经被搁置了两天。

我使用的是脚本文件夹比较,上面提到的文件是源文件,没有文件是目标文件,Oracle11g脚本。

我设法使它在没有分区的情况下工作。我不得不用分号替换斜线,并将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>

我询问了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;

相关内容

  • 没有找到相关文章

最新更新