4

SQL Server のインポートおよびエクスポート ウィザード (SQL Server 2008 R2) を使用して SQL Server データベースをエクスポートしようとしています。データベース スキーマは宛先 PostgreSQL データベースで適切に作成され、ほとんどのデータも作成されます。NULL最初の行に値がある列をエクスポートしようとしたときにのみクラッシュします。

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。列の最初の値に基づいてデータの型を推測しようとしSystem.Char[]、最初の値がNULL. この動作を変更して、データの型を結果の PostgreSQL 列の型と同じ方法で推測できるようにする方法はありますか (それが正しく行われるため)。

4

1 に答える 1

1

問題は PostgreSQL 側にあるようには見えないので、おそらくバグの変換ツールを探しているはずです。psql から:

test=# CREATE TABLE import (id int NOT NULL PRIMARY KEY, val1 int, val2 int);
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "import_pkey" for table "import"
CREATE TABLE
test=# COPY import FROM STDIN (FORMAT CSV);
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1,,111
>> 2,22,222
>> \.
test=# SELECT * FROM import;
 id | val1 | val2 
----+------+------
  1 |      |  111
  2 |   22 |  222
(2 rows)
于 2012-04-18T16:33:27.197 に答える