2017-07-06 5 views
0

SQLビューに連結テキストが含まれています。CSVのエクスポートに失敗しました。エクスポート後にSQLの改行が表示されます。

このテキストは、関数から来ている:

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

ALTER FUNCTION [dbo].[FC01_FunctionName] 
    (@OrderNr VARCHAR(200)) 
RETURNS VARCHAR(2000) 
BEGIN 
    declare @r varchar(2000) 
    declare @z varchar(2000) 

    DECLARE cc CURSOR FOR 
     SELECT SL.Description 
     FROM dbo.[DBName] SL 
     WHERE x = @OrderNr AND y = 1 

    SET @r = '' 

    OPEN cc 

    WHILE (0 = 0) 
    BEGIN 
     fetch next from cc into @z 

     if (@@fetch_status <> 0) 
      break 

     if (@r = '') 
     begin 
      set @r = @z 
     end 
     else 
     begin 
      set @r = @r + char(13) + char(10) + @z 
     end 
    end 

    close cc 
    deallocate cc 

    return @r 
end 

結果は以下のようになります。あなたは、時にはそれがコール24時間のように単に '1は' text-要素だ見ることができるように

enter image description here

。 ... 'など、複数のテキスト要素がある場合があります。' * Item No ... Please ... * ... 'など。

ビューを.csvファイルにエクスポートするたびに、複数のテキスト要素を持つ行に問題が発生しました。追加のテキスト要素ごとに新しい行が作成され、書式が破棄されます(黄色の印字されたテキストはすべて1つのフィールドに表示されます。「*** Item ...」というテキストのフィールド)。

enter image description here

最後の(黄色のマークが付いた)テキスト要素の後に、通常の項目が続きます。

.csv輸出にSQLビューを行うジョブのプロパティは、以下のとおりである:

sqlcmd -W -s ";" -E -d master -Q "SET NOCOUNT ON; SELECT * FROM [DB].[dbo].[ViewName];" -o "c:\Temp\XXX.csv" 

私は、エクスポート機能は、テキスト要素が分離されていると、おそらく、なぜ機能理由のthatsと考えていると信じていますすべての要素に新しい行を使うことにします。 私は、フィールドの結果を作成するSQL関数で何かを変更しなければならないと思っています。

これは、データを取得するビューのSQLクエリの一部です:

(SELECT [dbo].[FC01_FunctionName] ( x.[FieldName])) as [ColumnName], 

任意のアイデア?ご協力ありがとうございます!

+0

テキストリーダーの改行である 'char(13)+ char(10)'を挿入しています。 – Serg

+0

パーフェクト!それでおしまい!私はchar(13)を削除し、char(10)を ''で置き換えて空白文字を作成しました。とても簡単です、ありがとうございます! – Starburst

答えて

0

Excelのテキストと列の設定を見てください。 csvエクスポートが正しい(メモ帳で開いていることを確認している)かもしれませんが、Excelはファイルが開かれたときに行を分割します。

+0

あなたはどこでそれらを見つけるのですか? – Starburst

+0

データ/テキストの列。使用するものは、ファイルを開くなど、次の使用のために保存されます。 – OwlsSleeping

関連する問題