我正在尝试为我们的项目引入新的审核表。在部署过程中,我们使用redgate的Schema比较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论坛上,但我的帖子已按原样保留了两天。
我正在使用scripts文件夹比较,上面提到的文件是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>
答案 0 :(得分:1)
我请求redgate支持并得到答复。
当直接使用模式时,它似乎工作得很好(我自己还没有尝试过)。仅当您将scripts文件夹与scripts文件夹进行比较时,才会发生此问题。
要使分区正常工作,必须删除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;