MSSQL: Teilstring zwischen zwei Zeichen ermitteln (z.B. für GWC Sendungs-ID)
Zeichenkette zwischen zwei Zeichen herauslesen
- Bereitstellen einer MSSQL Funktion
- Funktion in Select oder Update-Anweisung anwenden
Wird z. B. verwendet um alle Dateien, die zu einem E-Mail gehören zusammenzuhalten, auch wenn diese aus der GWC-Belegübergabe heraus als einzelne Dateien übergeben werden. Dabei steht im Dateinamen an erster Stelle die Nummer der Datei (von GWC), an zweiter Stelle steht die GWC-Sendungs-ID. Dann kommt der Original Dateiname. Die Trennung erfolgt durch den Unterstrich.
Beispiel
Dateiname: 9_1c3ze2ox_Webinar_Administration_Grundlagen_MyWork-User.pdf
Sendungs-ID ist dann: 1c3ze2ox
Anlage der MSSQL-Funktion:
alter function dbo.zwischen_unterstrich (@n varchar(255)) returns varchar(255)
begin
declare @p1 int
declare @p2 int
declare @r varchar(255)
set @r = ''
set @p1 = charindex('_', @n)
if ( @p1 > 0 ) begin
set @p2 = charindex('_', @n, @p1 + 1)
if ( @p2 > 0 )
set @r = substring(@n, @p1 + 1, @p2 - @p1 - 1)
end
return @r
end
Anwendung der Funktion:
-- Mittels einer Funktion die GWC-Sendungs-ID ermittelt und in das Feld Sendungs-ID übertragen
-- um alle Dateien einer Sendung verknüpfen zu können DE Oktober 2021
update [dwdata].[dbo].[EINKAUF_NEW]
set
SENDUNGS_ID = topfact6sync.dbo.zwischen_unterstrich (DATEINAME)
where
Versandart = 'Eingang E-Mail'
and SENDUNGS_ID is null