안녕하십니까?
김도남 님
Microsoft TechNet의 Forum
사이트를 방문해 주셔서 감사합니다.
문의 하신 “MS SQL
문자열 데이타 에서 HTML Tag 제거하는 방법”에 대한 답변을 드리겠습니다.
Step 1 : MS SQL SnapIn
추가
아래의 Script를 사용해서
MS SQL Cmdlet을 사용합니다.
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
Step 2 : PowerShell Path
설정
아래의 Script를 사용해서 PowerShell Path를 이동 합니다.
Set-Location SQLSERVER:\SQL\<Server NetBIOS Name>\DEFAULT\DATABASES\<Database Name>
아래와 같이 <Server NetBIOS Name>, <Database Name>에는 알맞은 문자열을
입력합니다.
Set-Location SQLSERVER:\SQL\Db01\DEFAULT\DATABASES\AdventureWorks
Step 3 : Query
문 작성
아래의 Script는 Production.ProductDescription테이블에서
ProductDescriptionID, Description 컬럼의 데이타를 제공합니다.
Invoke-Sqlcmd -Query "SELECT [ProductDescriptionID], [Description] FROM Production.ProductDescription"
Step 4 :
문자열에서 HTML Tag 제거
아래의 Script는 replace를 사용해서
HTML Tag를 제거 합니다.
[string]::Join(",", ([string]::Concat("`"", $_.ProductDescriptionID, "`""), [string]::Concat("`"",$_.Description -replace "<[^>]*?>|<[^>]*>", "" ,"`"")))}
Step 5 : Data -> CSV
아래의 Script는 마지막으로 HTML Tag가 제거된 문자열을 CSV파일에
저장을 합니다.
Add-Content $OutFile
Full Script
[string] $OutFile = "C:\OutFile.csv"
Set-Content
$OutFile "`"ProductDescriptionID`",`"Description`""
Set-Location SQLSERVER:\SQL\<Server NetBIOS Name>\DEFAULT\DATABASES\<Database Name>
Invoke-Sqlcmd -Query "SELECT [ProductDescriptionID], [Description] FROM Production.ProductDescription"
| ForEach-Object{[string]::Join(",", ([string]::Concat("`"", $_.ProductDescriptionID, "`""), [string]::Concat("`"",$_.Description -replace "<[^>]*?>|<[^>]*>", "" ,"`"")))} |Add-Content $OutFile
참고 자료
String.Concat Method (Object)
http://msdn.microsoft.com/en-us/library/aa331854(v=vs.71).aspx
Using the Invoke-Sqlcmd cmdlet
제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.
제시해 드린 답변이 도움이 되었기를 바랍니다.