我正在尝试使用MySQL Workbench 5.2.46CE将一个数据库从Server 2008迁移到MySQL。所有操作都正常,直到数据副本(步骤“批量数据传输”):
开始..。 为数据副本准备信息..。 为完成的数据副本准备信息 确定要复制的行数. 数表中的行数..。 wbcopytables.exe -只计数-密码从stdin-odbc源=驱动程序={Server};Server=.\sqlexpress;Database=.;用户Id=.;Password=.-表文件=. 错误:确定要复制的行数:不支持的操作数类型为+:'NoneType‘和'str’ 失败
我真的不明白为什么我会这么做,所以如果你们中的任何人有什么想法.) (PS :我今天开始使用Server 2008和MySQL工作台,所以我不知道它们是如何工作的)
编辑2 - SQL表DDL (更新)
CREATE TABLE [dbo].[S_OCivilite](
[OCIV_Id] [int] IDENTITY(0,1) NOT N'',
[OCIV_Code_Pan] [nvarchar](3) NOT N'',
[OCIV_Intitule_Pan] [nvarchar](35) NOT N'',
[OCIV_DateModif_Pd] [datetime] NOT N'',
CONSTRAINT [PK_OCIV_Id] PRIMARY KEY CLUSTERED
(
[OCIV_Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
CONSTRAINT [IX_OCIV_Code_Pan] UNIQUE NONCLUSTERED
(
[OCIV_Code_Pan] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO发布于 2013-03-06 14:55:04
当您从一个DB移动到另一个DB时,您总是会遇到数据类型转换障碍。简而言之,您需要了解源DB中有哪些表结构,以及这些表结构如何映射到目标DB.All中的相同结构--这些SQL数据库支持或应该支持ANSI,这是SQL的共同共同方面,但是每个DB供应商都有过程扩展和DDL,这使得交叉转换变得有趣。
因此,阅读您的问题,您没有Server 2008,而是SQL,它是Server的“低”版本。您的错误是,在读取表以获取行计数时,它找到了数据类型或不支持的ddl语句,无法处理类型转换。
我使用MySQL工作台,但没有尝试迁移完整的DB。您应该寻找可以放松类型转换或将所有内容作为varchar发送到MySQL中的设置,然后让后续的ETL进程正确地处理和键入数据。或者一次做一张桌子,直到你明白它到底在抱怨什么。
如果您可以发布记录或记录,这是抱怨或来自SQLExpress的DDL表,这将是真正有帮助的。
编辑1:对SQL编辑的响应
我首先怀疑SQL Server中的Identity列。MySQL对应的数据类型应该是AUTO_INCREMENT。你需要找到散装装载机的日志。您应该能够设置日志记录的级别,并实际查看它在抱怨什么。
https://stackoverflow.com/questions/15249413
复制相似问题