mysql - 如何从 SSIS 包将 MySQL 模式设置为 'ANSI'

标签 mysql sql-server ssis

我有一个 SSIS 包,可以将数据从 MSSQL server 2008 R2 表传输到 MySQL 5.6。

    Set sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI_QUOTES'

在包中,在执行进行传输的数据流任务之前,我首先执行上面的命令,但是当到达真正的数据传输步骤时,我收到类似于下面的错误

An exception has occurred during data insertion, the message returned from the provider is: ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"myColumn1", "myColumn1") VALUES (?, ?)'

当我对此进行调查时,似乎可以通过将 MySQL 模式设置为“ANSI”来解决该错误,但由于我是 MySQL 新手,我认为上面的命令已经将模式设置为“ANSI” ,这是真的吗?

如果这不是真的,我如何从 SSIS 包将 MySQL 模式设置为“ANSI”?

另外,我在 MySQL 服务器上需要什么权限?

最佳答案

显然,技巧是让 SSIS 在插入数据之前运行此 SET SESSION sql_mode= 'ansi'; 命令,而不会弄乱包本身?

最简单的方法是让 ODBC 驱动程序在 SSIS 打开连接时发送命令,这可以在 ODBC 源的设置中进行配置

引用号:http://www.ash.burton.fm/blogs/2011/03/pgsql_ssis_mysql事实上,这解决了我面临的错误。

关于mysql - 如何从 SSIS 包将 MySQL 模式设置为 'ANSI',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38330310/

相关文章:

sql-server - SSIS查找转换使用表或查询

c# - 使用 Interop Excel 时,SSIS 脚本任务断点不起作用

mysql - 一对多,在一个查询中选择一个和多个

mysql 为每个客户选择过去 3 天的行

php - 如何上传多个文件,将它们的路径存储在mysql数据库行的不同列中

sql - 什么是强制关闭与数据库的所有其他连接的 SQL 命令

sql-server - T-SQL如何防止删除表中的第一行

php - fatal error : Class 'xxx' not found

sql - 如何在SQL Server中查找字符串是否以数字和括号开头?

sql-server - SSIS - 竖线与逗号分隔