リンク サーバーで OPENQUERY を使用して、SQL Server から mysql にデータをインポートしようとしています。
いくつかのテーブルをインポートしましたが、長い varchar フィールドを持つテーブルで問題が発生しています。
このクエリを実行するたびに、次の結果が得られます
Msg 7344, Level 16, State 1, Line 2
The OLE DB provider "MSDASQL" for linked server "Serv1" could not INSERT INTO table "[MSDASQL]" because of column "Notes". Could not convert the data value due to reasons other than sign mismatch or overflow.
Notes 列は、SQL サーバーでは varchar(8000) 型で、MySQL では varchar(8000) 型です。
どうした?なぜこのエラーが発生するのですか? 最初に Notes を varchar(8000) にしようとしましたが、うまくいきませんでした。
INSERT OPENQUERY (Serv1, 'SELECT
id,
i3_identity,
mid,
Notes,
Comments,
result_code,
Disposition,
completed_on,
calltype
FROM finaltesting.activities')
SELECT
CAST(ID AS int) AS id,
CAST(identity AS int) AS identity,
CAST(merchantAccount AS varchar(255)) AS mid,
Notes,
CAST(Comments AS varchar(8000)) AS Comments,
CAST(FinishCode AS varchar(255)) AS result_code,
CAST(Disposition AS varchar(255)) AS Disposition,
CAST(callDate AS datetime) AS completed_on,
CAST(CallType AS varchar(255)) AS calltype
FROM activities
符号の不一致またはオーバーフロー以外の理由により、データ値を変換できませんでした。