我正在使用简单的PowerShell脚本从Web服务中检索一些XML数据。 XML正在写入文件,但我想修改脚本并将XML插入SQL Server表中。我怎么能这样做?
cls
$apiKey = "00000000-1111-2222-3333-444444444444"
$userName = "12345678"
$password = "SamplePassword"
$URI = "https://www.example.com/api/TestWS.TestService.svc?wsdl"
$prox = New-WebServiceProxy -uri $URI -namespace WebServiceProxy
$chambersListData = $prox.chambersList($userName, $password, $apiKey, 0, $false, 0, $false)
$chambersListData | Get-Member
for($pageNumber = 1; $pageNumber -lt $chambersListData.pagesCount ; $pageNumber++)
{
$Page = $prox.chambersList($userName, $password, $apiKey, $pageNumber, $true, 0, $false)
$Page.chambersList | Export-Clixml ("C:\TEST_EXPORT\chambersList"+$pageNumber+".txt") -Encoding UTF8
}
示例INSERT可能类似于:
INSERT INTO [mydatabase].[test].[TestExportXml]
(
[MethodName],
[XmlData]
)
SELECT
'chambersList',
* here comes the C:\TEST_EXPORT\chambersList"+$pageNumber+".txt file content *
答案 0 :(得分:2)
是否要首先创建文件,然后将文件导入SQL Server表?如果是这样,您可以按如下方式使用T-SQL OPENROWSET:
INSERT INTO dbo.TestExportXml (MethodName, XmlData)
SELECT 'chambersList' AS MethodName,*
FROM OPENROWSET(BULK N'E:\test.xml', SINGLE_BLOB) AS XmlData
您可以使用Invoke-Sqlcmd cmdlet调用T-SQL语句或使用此函数: