none
MS SQL 문자열 데이타 에서 HTML Tag 제거하는 방법 RRS feed

  • 질문

  • Database Table에 존재하는 문자열을 HTML Tag만 제거한 후 CSV로 내보내는 방법을 알려주세요.

    2011년 9월 22일 목요일 오전 6:56

답변

  • 안녕하십니까? 김도남 님

    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 

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 9월 23일 금요일 오전 6:48
    2011년 9월 22일 목요일 오전 7:01
    중재자