You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell将API返回JSON写入SQL Server表的问题求助

API返回JSON导入SQL Server表的截断错误修复

问题现象

执行PowerShell脚本将API返回的JSON数据插入SQL Server表时,触发以下错误:

String or binary data would be truncated in table 'database.table', column 'associateOID'. Truncated value: '1 2 3 4 5 6 7 8'. The statement has been terminated.

问题根源

原脚本的foreach循环逻辑错误,没有正确遍历单条记录,而是直接使用整个$associateOID数组进行插入,导致插入的内容长度远超associateOID字段的限制,触发数据截断报错。

原错误代码片段

foreach($ID in $associateOID){
$insertquery="
  INSERT INTO $tableName
      ([associateOID],[timeCards])
    VALUES
      ('$associateOID','$timeCards')"
  $Command.CommandText = $insertquery
  $Command.ExecuteNonQuery()
}

修正后的代码片段

foreach($record in $Time.teamTimeCards){
  $aOID = $record.associateOID
  $timeCards = $record.timeCards | ConvertTo-Json -Compress -Depth 100
$insertquery="
  INSERT INTO $tableName
      ([associateOID], [timeCards])
    VALUES
      ('$aoid', '$timeCards')"
  $Command.CommandText = $insertquery
  $Command.ExecuteNonQuery()
}

修复说明

  • 调整遍历对象:改为遍历$Time.teamTimeCards中的单条记录,确保每次处理一条数据
  • 提取单个字段值:从单条记录中取出associateOID赋值给$aOID,保证插入的是单个合法值,避免数组内容超长
  • 格式化嵌套数据:将timeCards字段通过ConvertTo-Json转为压缩JSON格式,既保证数据结构完整,也适配SQL字段的存储要求

内容的提问来源于stack exchange,提问作者jdids

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:39:53