1

データを SQL Server データベースに一括インポートする必要があります。

私のJSONは次のようになります。

$projectsJSON = @"
[
    {
        "id":  35,
        "created_at":  "2016-01-12T11:40:36+01:00",
        "customer_id":  34,
        "name":  ".com",
        "note":  "COMXXXX-",
        "updated_at":  "2016-07-15T12:13:54+02:00",
        "archived":  false,
        "customer_name":  "PMName"
    },
    {
        "id":  23,
        "created_at":  "2010-01-11T12:58:50+01:00",
        "customer_id":  43,
        "name":  "PN",
        "note":  "{\r\n    \"Billable\": 1\r\n}\r\n",
        "updated_at":  "2017-11-24T15:49:31+01:00",
        "archived":  false,
        "customer_name":  "MSM"
    }
]
"@

$projects = $projectsJSON |ConvertFrom-Json
$dt2 = New-Object system.Data.DataTable
$dt2 = $projects|select-object id, created_at, customer_id, name, note, updated_at, archived, customer_name

$bulkCopy = New-Object Data.SqlClient.SqlBulkCopy($DestConnStr, [System.Data.SqlClient.SqlBulkCopyOptions]::KeepIdentity)
$bulkCopy.BulkCopyTimeout = 600
$bulkCopy.DestinationTableName = "project"
$bulkCopy.WriteToServer($dt2)

残念ながら、次のエラーが発生し続けます。

"WriteToServer" の値が "System.Object[]" の引数 "rows" を "System.Data.DataRow[]" 型に変換できません: ""@{id=35; を変換できません。created_at=2016-01-12T11:40:36+01:00; customer_id=34; 名前=.com; note=COMXXXX-; updated_at=2016-07-15T12:13:54+02:00; アーカイブ済み = False; customer_name=PMName}" タイプ "Selected.System.Management.Automation.PSCustomObject" の値をタイプ "System.Data.DataRow" に変更します。P:\PsideSync\sync.ps1:261 文字:3 + $bulkCopy.WriteToServer($dt2) + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~ + CategoryInfo : NotSpecified: (:) []、MethodException + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

大量の JSON データを SQL Server にインポートする正しい方法は何ですか?

ティア

4

1 に答える 1