T-SQL Verschneiden von Stammdaten

krause515

Benutzer
Beiträge
23
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:
Meldung 214, Ebene 16, Status 2, Prozedur sp_executesql, Zeile 1

Die Prozedur erwartet den @statement-Parameter vom ntext/nchar/nvarchar-Datentyp.
Ich habe auch einmal probiert alle Varchars zu Nvarchars zu ändern, dabei kam folgender Fehler raus:
Meldung 195, Ebene 15, Status 10, Zeile 1
'trunc' wird nicht als Name einer integrierten Funktion erkannt.
Meldung 102, Ebene 15, Status 1, Zeile 3
Falsche Syntax in der Nähe von 'ZW'.
Meldung 105, Ebene 15, Status 1, Zeile 3

Kein schließendes Anführungszeichen nach der Zeichenfolge '5 where zielschema.zieltabelle_typ is null;
commit;'.

Hier der T-SQL Code
 
Werbung:
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
 
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
 
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?
 
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 :)
 
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 :)
 
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

  • Dynamic_SQL.png
    Dynamic_SQL.png
    225,8 KB · Aufrufe: 3
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
 
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:
Meldung 214, Ebene 16, Status 2, Prozedur sp_executesql, Zeile 1

Die Prozedur erwartet den @statement-Parameter vom ntext/nchar/nvarchar-Datentyp.
Taucht immer noch auf
 

Anhänge

  • Dynamic_SQL.png
    Dynamic_SQL.png
    91 KB · Aufrufe: 3
Zuletzt bearbeitet:
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]
 
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.
 
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...
 
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 :)
 
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
 
Werbung:
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:
Zurück
Oben