DB2 REORG TABLE со стороны клиента с Migrator.NET - PullRequest
2 голосов
/ 20 октября 2010

Я использую Migrator.NET с базой данных DB2, и моя текущая миграция выполняет инструкцию ALTER TABLE, в результате чего таблица переходит в «состояние ожидания повторной регистрации». Это состояние требует реорганизации таблицы с помощью > REORG TABLE TableName, прежде чем я смогу что-либо сделать с ней.

Я пытался выполнить это с

База данных ["DB2"]. ExecuteNonQuery ("REORG TABLE MyTable");

, но это не удалось, потому что, очевидно, команда REORG относится только к стороне сервера и не может быть вызвана из клиента. Затем я попытался создать хранимую процедуру, которая вызывает оператор REORG, но борется с правильным синтаксисом.

Может кто-нибудь предложить решение этой проблемы?

1 Ответ

5 голосов
/ 20 октября 2010

Я нашел решение:

Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE MyTable')");

Ссылка на документацию ADMIN_CMD

В DB2 9.7 также можно использовать эту процедуру: ADMIN_REVALIDATE_DB_OBJECTS ()

...