我想用SQL Server的导入导出向导(SQL Server 2008 R2)导出SQL Server数据库。数据库模式在目标PostgreSQL数据库中得到良好创建,大部分数据也一样。它只有当我尝试导出具有第一行中的NULL
值的列崩溃:导出到PostgreSQL时SQL Server导入和导出向导出错
Error 0xc020844b: Data Flow Task 22: An exception has occurred during data insertion, the message returned from the provider is: Kan een object van het type System.Int32 niet converteren naar het type System.Char[]. (SQL Server Import and Export Wizard)
遗憾的是,相关的例外是荷兰人,但它说,它不能转换System.Int32
类型的对象到System.Char[]
。原始SQL Server架构中的列的类型为生成的PostgreSQL数据库中的int
和integer
。
这只发生在第一行的列值为NULL
。我认为它试图根据列的第一个值推断数据的类型,如果第一个值是NULL
,则默认为System.Char[]
。有没有什么方法可以改变这种行为,并让数据的类型以与PostgreSQL列的类型相同的方式被推断(因为它正确地)?
您可以尝试用SQL服务器中的虚拟值替换所有空值,并在迁移后将其替换回来。 – 2012-04-18 13:12:24
@ErwinBrandstetter是的,我可以做到这一点,但我希望有更简单的方法。 – 2012-04-18 13:30:30
你可以试试看看是否确实是导致问题的原因。 – 2012-04-18 14:02:15