来自客户端的DB2 REORG TABLE和Migrator.NET

Mat*_*ing 2 c# db2 alter-table migratordotnet

我正在将Migrator.NET与DB2数据库一起使用,并且我当前的迁移执行一个ALTER TABLE语句,这会导致表进入"reorg pending state".> REORG TABLE TableName在我可以对其进行任何其他操作之前,此状态需要重组表.

我尝试用它来执行

Database ["DB2"].ExecuteNonQuery("REORG TABLE MyTable");

但它失败了,因为显然该REORG命令只是服务器端,无法从客户端调用.然后我尝试创建一个调用REORG语句的存储过程,但我正在努力使用正确的语法.

任何人都可以建议解决这个问题吗?

Mat*_*ing 5

我找到了解决方案:

Database["DB2"].ExecuteNonQuery("call SYSPROC.ADMIN_CMD ('REORG TABLE MyTable')");
Run Code Online (Sandbox Code Playgroud)

链接到ADMIN_CMD文档

在DB2 9.7中,还可以使用此过程:ADMIN_REVALIDATE_DB_OBJECTS()