を使用して配列フィールドにインポートデータを配列フィールドに格納します。たTextWriterは、配列を受け入れていないので、動作しないBeginTextImport
を使用する:バルクデータは、私はPostgreSQLでは、以下の表を持ってNpgsqlの
using (var writer = connection.BeginTextImport(
"COPY table (name, keywords) FROM STDIN DELIMITER ';'"
))
{
foreach (var item in items)
{
writer.Write(item.Name + ";");
// How to do this?
writer.Write(item.Keywords.ToArray(), NpgsqlDbType.Array | NpgsqlDbType.Text);
}
}
をBeginBinaryImport
を使用すると、エラーを与える:「はない近い作家、行は最初のNpgsqlのを終了し、まだ進行中であることができます」。
using (var writer = connection.BeginBinaryImport(
"COPY table (name, keywords) FROM STDIN (FORMAT BINARY)"
))
{
foreach (var item in items)
{
writer.StartRow();
writer.Write(item.Name, NpgsqlDbType.Text);
writer.Write(item.Keywords.ToArray(), NpgsqlDbType.Array | NpgsqlDbType.Text);
}
}// Exception thrown here
データをアレイフィールドに一括コピーするにはどうすればよいですか?
この場合、テキストのインポートは不適切です。つまり、PostgreSQLのテキスト形式(区切り文字とすべて)ですべての書式を設定する必要があります。 –
私はちょうどあなたのバイナリコードの例を試して、うまく動作します - あなたは正確にどのようなバージョンのNpgsqlを使用していますか?あなたの商品リストはどんなタイプですか?問題を再現する完全なソースコードを提出できますか? –