【发布时间】:2016-03-18 10:49:56
【问题描述】:
我有一个包含 binary(32)、blob 和 varchar utf-8 字段的表。 从一个 mysql 服务器到另一个我通过 csv 导出数据:
select * INTO OUTFILE '$tmp_fname'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\\r\\n'
from mytable
然后
load data local infile '" . $mysqli->real_escape_string($glb) . "' ignore into table mytable_temp
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\\n'
我在 MSSQL 中尝试了使用批量插入相同的方法,并且对于简单的类型它可以工作(我得到另一个包含 int 和 char(44) 的表)。 但在这种情况下,我会收到导入错误。 一些细节:我需要进行自动导出导入 - 这就是我使用 csv 的原因,两个服务器只能通过 http(php 脚本)进行通信。表格有数百万行。
所以这里有问题。
如何在 csv 中格式化 blob 字段数据,以便 MS SQL 可以导入它?
如何为 MS SQL 导出 utf8 字符串?我尝试了转换(使用 utf16 的 myfield),这是我需要的吗?
我还尝试在 utf16 中导出数据并在批量插入中指定 DATAFILETYPE ='widechar',但它在第一个 int 值上引发错误。它实际上无法读取widechar?
【问题讨论】:
标签: mysql sql-server export-to-csv import-from-csv