2016-08-08 12 views
0

以下のようにSQL Serverストアドプロシージャを作成しました。 C#コードでは、このストアドプロシージャをtxtファイルとして保存します。アライメントとフィールドの長さを設定する方法

問題は次のとおりである:私が欲しいものとして

  1. 出力されません。 :私は、各列は、私はすでに、ストアドプロシージャに設定したものとして、特定の長さを持っている...しかし、それは

多くのコードを働いていないように見える各列の出力は左揃えで開始され

  • をしたいです

    ALTER PROCEDURE [dbo].[AR_Ebill_claim] 
    (
        @compcode varchar(15), 
        @dateFrom smalldatetime, 
        @dateTo smalldatetime, 
        @episType varchar (10), 
        @debtorCode varchar(30) 
    ) 
    AS 
        SELECT 
         CAST(ProviderCode AS VARCHAR(30)), 
         CAST(MRN AS VARCHAR(25)), 
         CAST(PatName AS VARCHAR(50)), 
         CAST(PatNewIC AS VARCHAR(14)), 
         CAST(PatOldIC AS VARCHAR(10)), 
         CAST(PatID AS VARCHAR(14)), 
         CAST(RefNo AS VARCHAR(15)), 
         CAST(InvNo AS VARCHAR(15)), 
         (SELECT CONVERT(VARCHAR, InvDate, 103)) AS InvDate, 
         CAST(BillType AS VARCHAR(2)), 
         CAST(SvcType AS VARCHAR(2)), 
         (SELECT CONVERT(VARCHAR, RegDate,103)) AS RegDate, 
         (SELECT CONVERT(VARCHAR, DischgDate,103)) AS DischgDate, 
         CAST(ClaimAmt AS MONEY), 
         --sum(PayableAmount), 
         --SUM(AllocationAmount), 
         PayableAmount   
        FROM 
         AR_Ebilling 
        WHERE 
         Company = @compcode 
         AND InvDate BETWEEN @dateFrom AND DATEADD(DAY,1, @dateTo) 
         AND BillType = @episType 
         AND DebtorCode = @debtorCode 
         AND paramsourcecode = 'pb' 
         AND transtype = 'in' 
         AND status = 0 
    
  • +0

    1.固定長のテキスト列に対して、 'varchar'を' char'に変更します。 2.テキストファイルをどのようにフォーマットしますか?私はそれがC#のコードで行われていると思います。 –

    +1

    アライメントは、SQLクエリではないC#アプリケーションで行う必要があります – Squirrel

    +0

    私はそれを保存するためにC#でコード化はtxt形式です –

    答えて

    0

    私はあなたの要件について完全にはわかりません。 CASTを使用しているためにデータセットで列サイズが取得されていると想定すると、機能しないことがあります。クエリが作成されたときにCASTが適用され、最終出力メタデータに同じサイズが転送されないことがあります。

    1. これはうまくいくかもしれません - あなたが望むサイズの定義を持つ一時テーブルがあります。 select文を一時表にプッシュします。テンポラリテーブルから*を選択します。

    2. 私はあなたがこれをするかどうかわからないけど、してみてください - あなたはProviderCodeような標準的な大きさは、末尾に空白を持つことで、値が10文字の場合でも

      を30個の文字を占めるようにしたい場合は= =>左(キャスト(ProviderCode as varchar(30))+ ""、30) - 固定長を確保するために、30文字を連結して30の左に移動します。

    さらに詳しい情報が必要な場合は、より明確な情報をご記入ください。

    関連する問題