none
Import von Textdatei RRS feed

  • Frage

  • Hallo,
    mit folgender Gespeicherten Prozedur importiere ich Daten aus einer Textdatei, was auch soweit klappt.
    Nun wurde das Feld Status geändert, und statt Zahlen liefert das Text-Dokument den String "OK" oder "NOK". Wie kann ich unteren Code ändern á la: if status = N'OK' then status = 1?

    Gruß Andreas

     

    ...
    	@data_file		nvarchar(max),
    	@format_file	nvarchar(max)
     AS
    	
     SET NOCOUNT ON;
    	
    	declare @sql nvarchar(max)
    	declare @anzahl int
    
    	set @sql = '
    		INSERT INTO [Injektormontage].[dbo].[tbl_importGehaeuse]
    			(Gehaeusenr
    			,Zeit_Magnetkraft
    			,Rohmaterial
    			,Nummer
    			,Status
    			,Erfassungsdatum
    			,Erfassungszeit)
    
    		SELECT CONVERT(decimal(18,0), [Gehaeusenr]) AS Gehaeusenr
    			,CONVERT(float, [Zeit_Magnetkraft]) AS Zeit_Magnetkraft
    			,Rohmaterial
    			,CONVERT(int, [Nummer]) As Nummer
    			,CONVERT(int, [Status]) As Status
    			,Erfassungsdatum
    			,Erfassungszeit
    
    		FROM OPENROWSET(BULK N''' + @data_file + '''
    			,FORMATFILE = N''' + @format_file + '''
    			,CODEPAGE = ''OEM''
    			) AS GehaeuseImport'
    
    	EXEC sp_executesql @sql
    	
    	Select @anzahl = @@ROWCOUNT
    	Return @anzahl

    http://www.AccessBlog.de
    Montag, 29. August 2011 08:42

Antworten

  • Hallo Andreas,

    das wäre z. B.

    CASE [Status] 
      WHEN 'OK' THEN 1
      WHEN 'NOK' THEN 0
      ELSE 0 -- alle sonstigen
      END AS Status
    siehe CASE Ausdruck,

    Am Rande: Anstatt des CONVERT für die übrigen Spalten kannst Du das durch das FORMATFILE festlegen,
    siehe Arbeiten mit Formatdateien

    Gruß Elmar

    • Als Antwort markiert Andreas Vogt Montag, 29. August 2011 12:26
    Montag, 29. August 2011 08:51
    Beantworter

Alle Antworten