Использование разделов Oracle и параметров хранения с Redgate Schema Compare завершается неудачно
Я пытаюсь представить новые таблицы аудита для нашего проекта. В процессе развертывания мы используем Redgate Schema Compare для 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;
Любая помощь очень ценится.
Alain
Для полноты вот мой файл DatabaseInformation.xml
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<ScriptsFolderInformation version="2" type="ScriptsFolderInformation">
<DatabaseVersion>ElevenG</DatabaseVersion>
</ScriptsFolderInformation>
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;