Вставка содержимого файла в таблицу SQL Server - PullRequest
1 голос
/ 22 августа 2011

Я использую простой скрипт PowerShell для извлечения некоторых 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 *

1 Ответ

2 голосов
/ 22 августа 2011

Хотите сначала создать файл, а затем импортировать файл в таблицу 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

Вы можете вызвать оператор T-SQL с помощью командлета Invoke-Sqlcmd или использовать эту функцию:

http://poshcode.org/2279

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...