Вывод SQL в формате Powershell - PullRequest
       1

Вывод SQL в формате Powershell

0 голосов
/ 23 октября 2019

Я написал SQL-запрос

$MeasurementsOlderThanOneWeek = sqlcmd -S "ms-sql-1264" -d "ShellPlus" -Q "SELECT [OrderID],[MasterID],[FamilyName],[GivenName],[DateOfBirth],[AppointmentDateAndTime] FROM [ShellPlus].[dbo].[Requests] LEFT JOIN [ShellPlus].[dbo].[Patients] ON [ShellPlus].dbo.Requests.PatientID = [ShellPlus].dbo.Patients.InternalPatientID WHERE AppointmentDateAndTime < dateadd(week,-1,getdate())"

, чтобы получить несколько строк из базы данных. Powershell дает его мне так:

UMCA1834969                      1658276                              Larry van der                                    J                                                1945-06-21 00:00:00.000 2019-10-15 11:00:00.000

Между столбцами много пробелов, есть ли способ удалить пробел между ними и заменить их на вкладку? Трим ничего не делает?

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Вместо использования sqlcmd вы можете использовать invoke-sqlcmd (часть модуля SqlServer)

$MeasurementsOlderThanOneWeek = invoke-sqlcmd -Server "ms-sql-1264" -Database 
"ShellPlus" -Query "SELECT [OrderID],[MasterID],[FamilyName],[GivenName], 
[DateOfBirth],[AppointmentDateAndTime] FROM [ShellPlus].[dbo].[Requests] LEFT JOIN 
[ShellPlus].[dbo].[Patients] ON [ShellPlus].dbo.Requests.PatientID = 
[ShellPlus].dbo.Patients.InternalPatientID WHERE AppointmentDateAndTime < 
dateadd(week,-1,getdate())"

$MeasurementsOlderThanOneWeek | foreach-object {
    "$($_.OrderID) $($_.MasterID) ..."
}
0 голосов
/ 24 октября 2019

Я уже решил использовать цикл for и проходить текст за строкой ... Но когда я использую Invoke-Sqlcmd, я получаю это:

PS H:> $ MeasurementsOlderThanOneWeek = invoke-sqlcmd -Server"ms-sql-1264" -Database "ShellPlus" -Query "SELECT [OrderID], [MasterID], [FamilyName], [GivenName], [DateOfBirth], [AppointmentDateAndTime] FROM [ShellPlus]. [dbo]. [Запросы] LEFT JOIN [ShellPlus]. [Dbo]. [Patients] ON [ShellPlus] .dbo.Requests.PatientID = [ShellPlus] .dbo.Patients.InternalPatientID WHERE AppointmentDateAndTime

At line:2 char:13
+ "ShellPlus" -Query "SELECT [OrderID],[MasterID],[FamilyName],[GivenNa ...
+             ~~~~~~
Unexpected token '-Query' in expression or statement.
At line:2 char:20
+ ... llPlus" -Query "SELECT [OrderID],[MasterID],[FamilyName],[GivenName],
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token '"SELECT [OrderID],[MasterID],[FamilyName],[GivenName], 
[DateOfBirth],[AppointmentDateAndTime] FROM [ShellPlus].[dbo].[Requests] LEFT JOIN 
[ShellPlus].[dbo].[Patients] ON [ShellPlus].dbo.Requests.PatientID = 
[ShellPlus].dbo.Patients.InternalPatientID WHERE AppointmentDateAndTime < 
dateadd(week,-1,getdate())"' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

С уважением, Thijs

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