December 11, 2008 at 5:01 am
Comments posted to this topic are about the item Loading Data With Powershell
December 15, 2008 at 11:00 pm
That's a good article, except for a couple of things.
Why do people still literally use commas as field separators (unless they have to, because the tool/function/utility doesn't support anything else)? Gaaaahhh! The example even uses the field separator parameter...
And, well, it's PowerShell. I'd rather do this stuff in INTERCAL, but to each their own...
Of course, BCP does this stuff as well...
December 16, 2008 at 8:31 am
corey lawson (12/15/2008)
That's a good article, except for a couple of things.Why do people still literally use commas as field separators (unless they have to, because the tool/function/utility doesn't support anything else)? Gaaaahhh! The example even uses the field separator parameter...
And, well, it's PowerShell. I'd rather do this stuff in INTERCAL, but to each their own...
Of course, BCP does this stuff as well...
In search of enlightenment, what should we be using as field separators?
---------------------------------------------------------
How best to post your question[/url]
How to post performance problems[/url]
Tally Table:What it is and how it replaces a loop[/url]
"stewsterl 80804 (10/16/2009)I guess when you stop and try to understand the solution provided you not only learn, but save yourself some headaches when you need to make any slight changes."
December 16, 2008 at 10:40 am
Good Article ...
December 16, 2008 at 10:47 am
I have found that TAB separated files seem to cause the least number of problems. Unfortunately TABs aren't always possible, if you have to work with a file created by a mainframe or a file that you receive by FTP then TABs probably aren't an option.
It is possible to Bulk Insert a file starting at the "nth" row without creating a format file. Simply use the firstrow option.
Bulk Insert #temp
From 'c:\data.txt'
With (firstrow = 2)
December 16, 2008 at 11:03 am
thermanson (12/16/2008)
I have found that TAB seperated files seem to cause the least number of problems. Unfortunately TABs aren't always possible, if you have to work with a file created by a mainframe or a file that you receive by FTP then TABs probably aren't an option.It is possible to Bulk Insert a file starting at the "nth" row with out creating a format file. Simply use the firstrow option.
Bulk Insert #temp
From 'c:\data.txt'
With (firstrow = 2)
Thanks for the tip about about firstrow. Unfortunatley the built in Powershell cmdlet, Export-CSV only supports a comma as a separator.
December 16, 2008 at 5:02 pm
when i ran:
./diskusage.ps1 sydw1255|export-CSV -path ./diskusage.csv -noTypeInformat
I get this error:
An empty pipe element is not permitted.
At F:\Working Folders\PowerShell\diskusage.ps1:4 char:2
December 17, 2008 at 6:12 am
David Ly (12/16/2008)
when i ran:./diskusage.ps1 sydw1255|export-CSV -path ./diskusage.csv -noTypeInformat
I get this error:
An empty pipe element is not permitted.
At F:\Working Folders\PowerShell\diskusage.ps1:4 char:2
David,
Try executing just ./diskusage.ps1 by itself and see if you get any output then add space pipe space export-csv -path ./diskusage.csv -noTypeInformat as shown in the article.
Verify your execution policy in Powershell also by running get-executionpolicy. Set your policy to remotesigned by running set-executionpolicy remotesigned if it is not already.
January 8, 2009 at 8:44 am
David Ly (12/16/2008)
when i ran:./diskusage.ps1 sydw1255|export-CSV -path ./diskusage.csv -noTypeInformat
I get this error:
An empty pipe element is not permitted.
At F:\Working Folders\PowerShell\diskusage.ps1:4 char:2
I get the same error - I believe it's due to the the following pipe (bold)?
Get-WmiObject -computername "$ComputerName" Win32_LogicalDisk -filter "DriveType=3"
|
foreach { add-member -in $_ -membertype noteproperty UsageDT $((Get-Date).ToString("yyyy-MM-dd"))
I can't use Get-DiskUsage.ps1 if I run it on it's own. Any help appreciated. I would really like to get this working. I'm hoping to use it for all manner of wmi queries so I can store them in a db. However I haven't managed to get any of the examples listed working at all.
Cheers
January 8, 2009 at 4:30 pm
There are some extra returns in the code in the article. Try this instead (notice the line breaks are different):
param ( [string]$ComputerName = "." )
Get-WmiObject -computername "$ComputerName" Win32_LogicalDisk -filter "DriveType=3" |
foreach { add-member -in $_ -membertype noteproperty UsageDT $((Get-Date).ToString("yyyy-MM-dd"))
add-member -in $_ -membertype noteproperty SizeGB $([math]::round(($_.Size/1GB),2))
add-member -in $_ -membertype noteproperty FreeGB $([math]::round(($_.FreeSpace/1GB),2))
add-member -in $_ -membertype noteproperty PercentFree $([math]::round((([float]$_.FreeSpace/[float]$_.Size) * 100),2)) -passThru } |
Select UsageDT, SystemName, DeviceID, VolumeName, SizeGB, FreeGB, PercentFree
January 14, 2009 at 3:56 am
Great thanks that works now - I'm having trouble getting sqlcmd to work correctly so I've started looking at BCP.exe
I've managed to rewrite your script so that my wmi results are output to a .xls file
Does anyone know the BCP command to get a local xls file loaded into a remote sql table?
I can manage to get the command working if I copy the data out of the .xls and into a .txt:
db = TEST
table = LogMemory
server = lonwintel01
This bcp command works for .txt file - does anyone know the correct switches for a .xls file:
bcp TEST..LogMemory in "c:\ps\scripts\import.txt" -S lonwintel01 -T
January 14, 2009 at 6:15 am
NevJam (1/14/2009)
Great thanks that works now - I'm having trouble getting sqlcmd to work correctly so I've started looking at BCP.exeI've managed to rewrite your script so that my wmi results are output to a .xls file
Does anyone know the BCP command to get a local xls file loaded into a remote sql table?
I can manage to get the command working if I copy the data out of the .xls and into a .txt:
db = TEST
table = LogMemory
server = lonwintel01
This bcp command works for .txt file - does anyone know the correct switches for a .xls file:
bcp TEST..LogMemory in "c:\ps\scripts\import.txt" -S lonwintel01 -T
BCP does not work with Excel files. Keep in mind the T-SQL shown in the article for sqlcmd could have been executed with Query Analyzer, SSMS or osql instead of sqlcmd
BULK INSERT dbautility.dbo.DiskUsage FROM 'C:\Users\u00\bin\diskusage.csv'
WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = ''
You can use DTS or SSIS with Excel files.
April 25, 2009 at 8:33 am
Blogged about Executing Powershell in SQL Server . Using the technique described in the blog post you have a fourth method to load Powershell data into SQL Server. The approach uses xp_cmdshell and XQUERY to return the result set.
April 26, 2009 at 1:48 pm
Created a Powershell script to import Excel 2007 or 2003 to a SQL table, Import-ExcelToSQL
February 15, 2010 at 4:48 pm
cmille19 (1/8/2009)
There are some extra returns in the code in the article. Try this instead (notice the line breaks are different):param ( [string]$ComputerName = "." )
Get-WmiObject -computername "$ComputerName" Win32_LogicalDisk -filter "DriveType=3" |
foreach { add-member -in $_ -membertype noteproperty UsageDT $((Get-Date).ToString("yyyy-MM-dd"))
add-member -in $_ -membertype noteproperty SizeGB $([math]::round(($_.Size/1GB),2))
add-member -in $_ -membertype noteproperty FreeGB $([math]::round(($_.FreeSpace/1GB),2))
add-member -in $_ -membertype noteproperty PercentFree $([math]::round((([float]$_.FreeSpace/[float]$_.Size) * 100),2)) -passThru } |
Select UsageDT, SystemName, DeviceID, VolumeName, SizeGB, FreeGB, PercentFree
Thanks...though its so silly this article is still not updated, to get a 5 start rating known issue should have been fixed and a full set of files should have been attached for anyone to try quickly...
So i am able to export, lets see how does import do...
Prakash
Prakash Heda
Lead DBA Team - www.sqlfeatures.com
Video sessions on Performance Tuning and SQL 2012 HA
Viewing 15 posts - 1 through 15 (of 19 total)
You must be logged in to reply to this topic. Login to reply