Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

T-SQL Verschneiden von Stammdaten

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von krause515, 29 Juni 2015.

  1. krause515

    krause515 Benutzer

    Guten Tag alle zusammen,

    Also es geht um folgendes:
    Ich bin momentan in einem Praktikum als Informations Technischer Assistent und habe als Projekt die "Evaluierung und Optimierung von Extraktionsprozessen aus verschiedenen Datenquellen in den Staging-Bereich eines DataWarehouse".
    Soweit so gut hat alles ganz gut geklappt, aber nun soll ich mein VBA Skript umschreiben (dieses VBA Skripts hat ein SQL Skript aus einer Umsetzungstabelle [Excel] inkl. Stammdaten erzeugt, so dass dieses SQL Skript bei der Ausführung die Daten verschnitten hat [Quelldatenbank - Stammdaten - Zieldatenbank]) . Ich habe nun versucht das VBA Skripts als Prozedur zu schreiben in T-SQL, aber nachdem ich nun die ersten 20 Fehler geschafft habe zu fixen komme ich nun an einer Stelle nicht weiter.
    Das Microsoft Managment Studio versucht jedes mal Variablen als Prozedur auszuführen, zu den dadurch entstehenden Fehlern bräuchte ich eine Erklärung.
    Das T-SQL Skript versucht wie mit Textbausteinen die Statements(Querys) zusammen zu bauen und wird an zwei Stellen ausgeführt.
    Ich habe alle Variablen/Tabellen Präfixe durch Suchen/Ersetzen mit Leerzeichen ausgetauscht um meine Datensicherheit zu gewährleisten, dadurch könnten Fehler entstanden sein.

    Den eigentlichen Fehler mit dem ich Problem habe ist der:
    Ich habe auch einmal probiert alle Varchars zu Nvarchars zu ändern, dabei kam folgender Fehler raus:
    Hier der T-SQL Code
     
  2. krause515

    krause515 Benutzer

    Code Musste in eine zweite Antwort aufgrund des 10.000 zeichen Limits
    Code:
    DECLARE @sql varchar(MAX)
    DECLARE @sql1_1 varchar(MAX)
    DECLARE @sql1_2 varchar(MAX)
    DECLARE @sql1_3 varchar(MAX)
    DECLARE @sql1_4 varchar(MAX)
    DECLARE @sql1_5 varchar(MAX)
    DECLARE @sqla_1 varchar(MAX)
    DECLARE @sqla_2 varchar(MAX)
    DECLARE @sqlg varchar(MAX)
    DECLARE @sql2_1 varchar(MAX)
    DECLARE @sql2_2 varchar(MAX)
    DECLARE @sql3_1 varchar(MAX)
    DECLARE @sql3_2 varchar(MAX)
    DECLARE @sql3_3 varchar(MAX)
    DECLARE @sql3_4 varchar(MAX)
    DECLARE @sql3_5 varchar(MAX)
    DECLARE @sql3_6 varchar(MAX)
    DECLARE @sql3_7 varchar(MAX)
    DECLARE @sql3_8 varchar(MAX)
    DECLARE @sql3_9 varchar(MAX)
    DECLARE @sql3_10 varchar(MAX)
    DECLARE @sql5 varchar(MAX)
    DECLARE @sqlscript_1 varchar(MAX)
    DECLARE @sqlscript_2 varchar(MAX)
    DECLARE @tabname varchar(MAX)
    DECLARE @spaltenname_teil varchar(MAX)
    DECLARE @spaltenname varchar(MAX)
    DECLARE @trennlinie varchar(MAX)
    set @trennlinie ='----------------------------------------------------'
    DECLARE @remlinie varchar(MAX)
    set @remlinie ='--'
    DECLARE @zieltabelle varchar(MAX)
    set @zieltabelle ='zieltabelle'
    DECLARE @zielschema varchar(MAX)
    set @zielschema ='zielschema'
    DECLARE @quellschema varchar(MAX)
    set @quellschema ='quellschema'
    declare @crlf nchar(2)
    set @crlf = nchar(13) + nchar(10)
    SET @sql1_1 ='INSERT INTO ' +@zielschema +'.' +@zieltabelle +'( _WERT_ST, _DATUM, _startzeit) SELECT trunc('
    SET @sql1_2 =',5), '
    SET @sql1_3 ='.DATE_TIME '
    SET @sql1_4 =' FROM ' +@quellschema +'.'
    SET @sql1_5 =';'
    SET @sqla_1 =' where ARCHIV is NULL '
    SET @sqla_2 =' and ARCHIV is NULL '
    SET @sqlg =''
    SET @sql2_1 ='Update ' +@zielschema +'.' +@zieltabelle +' SET ' +@zielschema +'.' +@zieltabelle +'._KENNZEICHEN = '''
    SET @sql2_2 =''' Where (((' +@zielschema +'.' +@zieltabelle +'._KENNZEICHEN) Is Null));'
    SET @sql3_1 ='Update ' +@zielschema +'.' +@zieltabelle +' SET ' +@zielschema +'.' +@zieltabelle +'._typ'''
    SET @sql3_2 =''', ' +@zielschema +'.' +@zieltabelle +'._einheit='''
    SET @sql3_3 =''', ' +@zielschema +'.' +@zieltabelle +'._KDNR= '''
    SET @sql3_4 =''', ' +@zielschema +'.' +@zieltabelle +'._ENTST= '''
    SET @sql3_5 =''', ' +@zielschema +'.' +@zieltabelle +'._BP= '''
    SET @sql3_6 =''', ' +@zielschema +'.' +@zieltabelle +'._parameter= '''
    SET @sql3_7 =''
    SET @sql3_8 =''', ' +@zielschema +'.' +@zieltabelle +'._ID= '''
    SET @sql3_9 =''', ' +@zielschema +'.' +@zieltabelle +'._PNART_ID= '''
    SET @sql3_10 =' where ' +@zielschema +'.' +@zieltabelle +'._typ is null;'
    SET @sql5 ='update ' +@zielschema +'.' +@zieltabelle +' set _WERT_NM = to_number(_WERT_ST) where ARCHIV is NULL;'
    DECLARE @schleifenzaehler int
    SET @schleifenzaehler = 1
    while (@schleifenzaehler<(SELECT COUNT(ID) FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]))
    BEGIN
        DECLARE @parameter varchar(MAX)
        SELECT @parameter = Parameter FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @anlage varchar(MAX)
        SELECT @anlage = Anlage FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @ort varchar(MAX)
        SELECT @ort = Ort FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @einheit varchar(MAX)
        SELECT @einheit = Einheit FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @mwid varchar(MAX)
        SELECT @mwid = MWID FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @_entnahmestelle varchar(MAX)
        SELECT @_entnahmestelle = _Entnahmestelle FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @_para_id varchar(MAX)
        SELECT @_para_id = _Para_ID FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @startzeit varchar(MAX)
        SELECT @startzeit = Startzeit FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @_pn_art varchar(MAX)
        SELECT @_pn_art = _PN_Art FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @berechnung varchar(MAX)
        SELECT @berechnung = Berechnung FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @he_mw varchar(MAX)
        SELECT @he_mw = HE_MW FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @gueltig varchar(MAX)
        SELECT @gueltig = Gültigkeit FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        DECLARE @kennzeichen varchar(MAX)
        SELECT @kennzeichen = _Kennzeichen_manuell FROM [_TEST].[dbo].[Umsetzung__Oracle_0neu]  where auto_id = @schleifenzaehler;
        if ISNUMERIC(@_pn_art)=0
        BEGIN
            SET @_pn_art='5'
        END
        if LEN(@anlage)=0
        BEGIN
            GOTO programmende
        END
        if @he_mw=''
        BEGIN
            GOTO schleifenende
        END
        if (ISNUMERIC(@mwid)=0 AND LEN(@berechnung)=0)
        BEGIN
            GOTO schleifenende
        END
        if ISNUMERIC(@_para_id)=0
        BEGIN
            GOTO schleifenende
        END
        if RIGHT(@parameter, 9)='Startzeit'
        BEGIN
            GOTO schleifenende
        END
        if (@he_mw='BRMW' OR @he_mw='BRHE' OR @he_mw='BRZW' OR @he_mw='BRBS' OR @he_mw='BR')
        BEGIN
            SET @mwid='NULL'
        END
        if @kennzeichen=''
        BEGIN
            SET @kennzeichen='MIT'
        END
        if LEN(@gueltig)>0
        BEGIN
            SET @sqlg=' and DATE_TIME' +@gueltig
        END
        ELSE
            SET @sqlg=''
    --SET @sqlscript_1 = @sqlscript_1 +@trennlinie +@crlf  +@remlinie +' KA: ' +@anlage +@crlf +@remlinie +' MWID: ' +@mwid +@crlf +@remlinie +'MW-Typ: ' +@he_mw +' ' +@berechnung +@crlf +@remlinie +@parameter +' ' +@ort +@crlf +@trennlinie +@crlf
    SET @tabname = 'KA' +@anlage +'_' +@he_mw
    
     
  3. krause515

    krause515 Benutzer

    Und war immer noch zu viel hier der Rest:
    Code:
    case_if_anfang:
        if @he_mw='MW'
        BEGIN
            SET @spaltenname_teil = 'MW' +@mwid
            SET @startzeit = ', NULL'
            SET @spaltenname = @spaltenname_teil +'_MAX'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +@sqla_1 +@sqlg +@sql1_5 +@crlf +@sql2_1 +'MAX' +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @spaltenname = @spaltenname_teil +'_MIN'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +@sqla_1 +@sqlg +@sql1_5 +@crlf +@sql2_1 +'MIN' +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @spaltenname = @spaltenname_teil +'_MIT'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +@sqla_1 +@sqlg +@sql1_5 +@crlf +@sql2_1 +'MIT' +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @spaltenname = @spaltenname_teil +'_SUM'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +@sqla_1 +@sqlg +@sql1_5 +@crlf +@sql2_1 +'SUM' +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
        END
        if @he_mw='HE'
        BEGIN
            SET @spaltenname_teil ='MW' +@mwid
            SET @spaltenname = @spaltenname_teil +'_WERT'
            if LEN(@startzeit)>0
            BEGIN
                SET @startzeit = ', trunc(' +@tabname +'.MW' +@startzeit +'_WERT, 2)'
            END
            ELSE SET @startzeit =', NULL'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@tabname +'.' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
        END
        if @he_mw='BR'
        BEGIN
            SET @startzeit = ', NULL'
            SET @tabname = 'KA' +@anlage +'_BR'
            SET @spaltenname = @berechnung
            SET @sql = @sql1_1 +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' WHERE ' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5  +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @he_mw = 'HE'
            GOTO case_if_anfang
        END
        if @he_mw='BRHE'
        BEGIN
            SET @startzeit = ', NULL'
            SET @tabname = 'KA' +@anlage +'_HE'
            SET @spaltenname = @berechnung
            SET @sql = @sql1_1 +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@spaltenname +' is NOT NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @he_mw = 'HE'
            GOTO case_if_anfang
        END
        if @he_mw='BRMW'
        BEGIN
            SET @startzeit =', NULL'
            SET @tabname = 'KA' +@anlage +'_MW'
            SET @spaltenname = @berechnung
            SET @sql = @sql1_1 +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @he_mw = 'MW'
            GOTO case_if_anfang
        END
        if @he_mw='ZW'
        BEGIN
            SET @spaltenname_teil = 'ZW' +@mwid
            SET @spaltenname = @spaltenname_teil +'_WERT'
            SET @startzeit = ', NULL'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@tabname +'.' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
        END
        if @he_mw='BRZW'
        BEGIN
            SET @startzeit =', NULL'
            SET @tabname = 'KA' +@anlage +'_BS'
            SET @spaltenname = @berechnung
            SET @sql = @sql1_1 +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 + @sql
            SET @he_mw = 'ZW'
            GOTO case_if_anfang
        END
        if @he_mw='BS'
        BEGIN
            SET @spaltenname_teil = 'BS' +@mwid
            SET @spaltenname = @spaltenname_teil +'_WERT'
            SET @startzeit = ', NULL'
            SET @tabname = 'KA' +@anlage +'_BS'
            SET @sql = @sql1_1 +@tabname +'.' +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@tabname +'.' +@spaltenname +' is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
        END
        if @he_mw='BRBS'
        BEGIN
            SET @startzeit = ', NULL'
            SET @tabname = 'KA' +@anlage +'_BS'
            SET @spaltenname = @berechnung
            SET @sql = @sql1_1 +@spaltenname +@sql1_2 +@tabname +@sql1_3 +@startzeit +@sql1_4 +@tabname +' where ' +@spaltenname +'is not NULL' +@sqla_2 +@sqlg +@sql1_5 +@crlf +@sql2_1 +@kennzeichen +@sql2_2 +@crlf
            SET @sqlscript_1 = @sqlscript_1 +@sql
            SET @he_mw = 'BS'
            GOTO case_if_anfang
        END
    case_if_ende:
       
        SET @sql = @sql3_1 +@he_mw +@sql3_2 +@einheit +@sql3_3 +LEFT(@_entnahmestelle, 5) +@sql3_4 +@_entnahmestelle +@sql3_5 +RIGHT(@_entnahmestelle, 5) +@sql3_6 +@_para_id +@sql3_7 +@sql3_8 +@mwid +@sql3_9 +@_pn_art +@sql3_10
        SET @sqlscript_1 = @sqlscript_1 +@sql +@crlf +'commit;' +@crlf
       
        execute sp_executesql @sqlscript_1
        SET @sqlscript_1 = ''
        SET @schleifenzaehler = @schleifenzaehler+1
    schleifenende:
    END
    programmende:
        --SET @sqlscript_2 = @sqlscript_2 +@trennlinie +@crlf +@remlinie +' generelle Änderung aller Datensätze ' +@crlf +@trennlinie +@crlf
        SET @sqlscript_2 = @sqlscript_2 +'update ' +@zielschema +'.' +@zieltabelle +' set _wert_st = to_char(to_number(_wert_st) * 86.4) where _parameter = 455 and _BP = ''20087'' and ARCHIV is NULL;' +@crlf
        SET @sqlscript_2 = @sqlscript_2 +@sql5 +@crlf
        SET @sqlscript_2 = @sqlscript_2 +'update ' +@zielschema +'.' +@zieltabelle +' set _startzeit =ltrim((to_char(trunc(to_number(_startzeit)),''09''))) || '':'' || ltrim((tu_char(trunc((to_number(_startzeit)) - (trunc(to_number(_startzeit))))*60),''00''))) where _typ=''HE'' and _startzeit is not null and ARCHIV is NULL;' +@crlf
        SET @sqlscript_2 = @sqlscript_2 +'commit;' +@crlf
        execute sp_executesql @sqlscript_2
    
     
  4. ukulele

    ukulele Datenbank-Guru

    Das ist natürlich schon ein Haufen Code. Wenn ich das richtig verstehe erstellst du dynamisch eine Prozedur als @sqlscript_1 und versuchst diese auszuführen. Der Fehler liegt dann erst in der Prozedur. Mangels Tabellen kann ich die natürlich nicht erzeugen, vieleicht kannst du mal den Wert von @sqlscript_1 posten?
     
  5. krause515

    krause515 Benutzer

    Ja vom Prinzip ist das genau das was ich mache.... kannst du mir denn bitte sagen wie ich an den Wert komme?
    Ich habe vorher nur in Visual Basic und C++ programmiert, so dass ich beim debuggen mithilfe von Microsoft SQL Server Managment Studio Probleme habe.....
    Danke aufjedenfall schon einmal für die Hilfe :)
     
  6. ukulele

    ukulele Datenbank-Guru

    Statt execute oder zusätzlich machst du einen SELECT @sqlscript_1 und solltest eine Ausgabe der Prozedur bekommen. Die dürfte dann als eigenständiges Statement laufen oder eben auch nicht :)
     
  7. krause515

    krause515 Benutzer

    Hier ein Screenshoot:
    Es scheint als würde es in einer endlosschleife der Abfrage enden, denn ausser den ersten Datensatz ist es immer wieder die gleiche Abfrage die als Wert angezeigt wird.

    Edit:
    Die Zeile
    SET @schleifenzaehler=@schleifenzaehler+1
    am ende der Schleife anzuhängen gab natürlich kein Unterschied... hatte die vergessen wieder rein zu editieren die Zeile
     

    Anhänge:

  8. ukulele

    ukulele Datenbank-Guru

    Mir scheint du hast zuviel gekürzt, du hast
    Code:
        execute sp_executesql @sqlscript_1
        SET @sqlscript_1 = ''
        SET @schleifenzaehler = @schleifenzaehler+1
    durch das SELECT ersetzt. Aber der Zähler wird natürlich nicht mehr hoch gesetzt.

    Tausch mal nur execute sp_executesql @sqlscript_1 gegen SELECT @sqlscript_1
     
  9. krause515

    krause515 Benutzer

    Muss der Zähler vor dem Execute / Select hochgezählt werden? Ich Probiers ebend aus... ich editiere hierrein gleich das Ergebnis
    Edit:
    Ja jetzt werden die Werte raufgezählt wie es sein sollte, ich werde es nun nochmal mit dem Execute probieren anstatt des Selects.... hier schon einmal nen Screenshoot wie es durch die Änderung aussieht.

    Edit_2:
    Taucht immer noch auf
     

    Anhänge:

    Zuletzt bearbeitet: 30 Juni 2015
  10. krause515

    krause515 Benutzer

    So hab nun durch das Select noch ein paar SQL Syntax Fehler ausgemerzt hier und da nen Hochkomma zu viel gewesen, aber einen weiteren Fehler wird ich nicht los und zwar in diesen Zeilen
    Code:
    if LEN(@gueltig)>0
    BEGIN
    SET@sqlg=' and DATE_TIME'+@gueltig
    END
    ELSE
    SET@sqlg=''
    
    Wird anscheinend das if-else nicht richtig ausgeführt da selbst bei leerer @gueltig Variable @sqlg auf "and DATE_TIME0" (0=Zahl) gesetzt wird[/CODE]
     
  11. ukulele

    ukulele Datenbank-Guru

    Mit Screenshots ist immer nicht so schön.

    Bei dem IF-Statement würde ich dir dringend empfehlen immer mit IF BEGIN END ELSE BEGIN END zu arbeiten. Deine jetzige Variante funktioniert oft nicht in Triggern, Prozeduren etc.
     
  12. krause515

    krause515 Benutzer

    Habe ich geändert sind ja nur 2 Else Verknüpfungen, aber das Problem liegt denke ich vllt hier:
    SELECT @gueltig = Gültigkeit FROM [_TEST].[dbo].[Umsetzung_PDV_Oracle_0neu] where auto_id = @schleifenzaehler;
    Kann es sein dass der vielleicht Probleme hat mit dem "Ü"? Mir kommts so vor als ob gueltig einen Falschen Wert hat...
     
  13. krause515

    krause515 Benutzer

    Andere If Abfrage und das Problem war gelöst ich habe das Statement umgedreht und seitdem funktioniert es mit
    Code:
    if (@gueltig=0)
    BEGIN
    SET@sqlg=''
    END
    ELSE
    BEGIN
    SET@sqlg=' and DATE_TIME'+@gueltig
    END
    
    So nun beim weiteren Debuggen schmiert die Abfrage ab wenn ich über Schleifenzahl 12 komme.... also von 12 auf 13 hört er einfach auf.... kann ich iwie sehen welche Variable z.B. @sqlscript_1 an speicher verbraucht?
    Und nocheinmal Vielen Dank dass du mir so hilfst Ukulele :)
     
  14. krause515

    krause515 Benutzer

    So nun läufts soweit durch, die Schleife läuft bis ende durch & die SQL Querys sind richtig.....
    So nun läuft meine Schleife bis 3799 durch (Anzahl der Datensätze), aber spring nicht zu dem Teil nach dem Programm-Ende bzw. Geht die Sets durch aber speichert nichts in @sqlscript2 & führt dieses auch nicht aus
    Hier der Link zu meinem Aktuellen Code:
    http://pastebin.com/RmhANdux
     
  15. krause515

    krause515 Benutzer

    Hinbekommen, ich hätte die Variable @sqlscript_2 vorher mit "SET @sqlscript_2 ='' " Initialisieren sollen der hat sich so die Variable zerschossen beim "dranhängen" ohne vorherigen Inhalt bzw. Initialisation
    Nun bin ich Dankbar für Perfomance Tipps... ich habe angefangen damit dass ich die oberen 13 Selects gelöscht habe und mithilfe von Einem Select allen 13 Variablen Werte zuweise (@Parameter, @he_mw etc.)
    Edit: Warum geht meine Alternative nicht?
    Code:
    select
    @parameter=Parameter
    @anlage=Anlage
    @ort=Ort
    @einheit=Einheit
    @mwid=MWID
    @blome_entnahmestelle=_Entnahmestelle
    @blome_para_id=_Para_ID
    @startzeit=Startzeit
    @blome_pn_art=_PN_Art
    @berechnung=Berechnung
    @he_mw=HE_MW
    @gueltig=Gültigkeit
    @pdvkennzeichen=_Kennzeichen_manuell
    from[_TEST].[dbo].[Umsetzung_PDV_Oracle_0neu]whereauto_id=@schleifenzaehler;
    
     
    Zuletzt bearbeitet: 30 Juni 2015
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden