【发布时间】:2019-04-30 23:19:53
【问题描述】:
您应该阅读以下内容:您正在尝试了解如何将 SQL Server 数据转换为 JSON 并将其放入文本 .json 文件中
问题:
谁能告诉我这段代码有什么问题?我的目标是从 SQL Server 表中读取数据,将其转换为 JSON,然后将结果保存为 JSON 文本文件。代码运行,但生成的 .json 文件只有:
{
"FieldCount": 11
},
{
一遍又一遍地重复,仅此而已。
我的代码:
$instance = "localhost\SQLEXPRESS"
$connectionString = "Server=$Instance; Database=myDB;Integrated Security=True;"
$query = "Select * from myTable"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
$command = $connection.CreateCommand()
$command.CommandText = $query
$result = $command.ExecuteReader()
$result | ConvertTo-Json | Out-File "file.json"
$connection.Close()
更新:
在技术上他/她回答了我最初的问题时,将把答案奖励给 postanote(尽管我会警告说我没有尝试过)。
但是,我会推荐 Mike 的答案或我最终使用 BCP 的答案:
bcp "select * from myTable FOR JSON AUTO" queryout "C:\filepath\testsml.json" -c -S ".\SQLEXPRESS" -d myDBName -T
- 请注意,JSON AUTO 将自动为您提供一个 json scehma 与允许您自定义它的 JSON 管道。
- 您必须先安装 BCP: https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-2017
【问题讨论】:
-
executeReader 正在返回一个阅读器对象,它不是一个数据数组。您需要做一些额外的工作才能从那里提取数据
标签: json powershell powershell-4.0