Hallo zusammen,
ich habe folgendes Problem zu lösen.
Ich bekomme in Meine Datenbank eine Tabelle importiert in der jede Datei die auf dem V-Laufwerk liegt mit größe, Last_Access, etc. eingetragen ist.
Es gibt auch eine Spalte wo der konkrete Pfadname aufgeführt ist.
z.B.: V:\_general\Testdateien\Robocopy\Batch\Auswertung\ Befehle\Test
Je nachdem wieviele Datein in diesem Ordner sind wird er auch dementspechend in der Liste aufgeführt.
Mein Problem besteht darin einen View zu erzeugen der mir alle Pfade nach der 5ten Ebene abschneidet (im Beispiel wäre Ebene 5 Auswertung) und die Ebenen in Spalten schreibt, sodass folgendes dabei rauskommt.
Ebene1 Ebene2 Ebene3 Ebene4 Ebene5
_general Testdateien Robocopy Batch Auswertung
Mittels einer Function habe ich den String schonmal zerlegt, allerdings bekomme ich die Ergebnisse dann untereinander was dann zu einer Fehlermeldung führt da Ebene1 ja öfters in der Liste auftauchen würde.
Ich füge die Function mal mit ein falls es hilft. Vielleicht kann man diese auch so modifizieren das die Ebenene Nebeneinander stehen. Allerdings bleibt dann immernoch das Problem mit der Begrenzung auf Ebene 5.
CREATE FUNCTION [dbo].[SplitTest](@String nvarchar(4000), @Delimiter char(1))
returns @Results TABLE (Items nvarchar(4000))
as
begin
declare @index int
declare @slice nvarchar(4000)
select @index = 1
if @String is null return
while @index != 0
begin
select @index = charindex(@Delimiter,@String)
if @index !=0
select @slice = left(@String,@index - 1)
else
select @slice = @String
insert into @Results(Items) values(@slice)
select @String = right(@String,len(@String) - @index)
if len(@String) = 0 break
end return
end
select *
from dbo.SplitTest
((V:\_general\Testdateien\Robocopy\Batch\Auswertun g\Befehle\Test),'\')
Danke und viele Grüße
Marius
ich habe folgendes Problem zu lösen.
Ich bekomme in Meine Datenbank eine Tabelle importiert in der jede Datei die auf dem V-Laufwerk liegt mit größe, Last_Access, etc. eingetragen ist.
Es gibt auch eine Spalte wo der konkrete Pfadname aufgeführt ist.
z.B.: V:\_general\Testdateien\Robocopy\Batch\Auswertung\ Befehle\Test
Je nachdem wieviele Datein in diesem Ordner sind wird er auch dementspechend in der Liste aufgeführt.
Mein Problem besteht darin einen View zu erzeugen der mir alle Pfade nach der 5ten Ebene abschneidet (im Beispiel wäre Ebene 5 Auswertung) und die Ebenen in Spalten schreibt, sodass folgendes dabei rauskommt.
Ebene1 Ebene2 Ebene3 Ebene4 Ebene5
_general Testdateien Robocopy Batch Auswertung
Mittels einer Function habe ich den String schonmal zerlegt, allerdings bekomme ich die Ergebnisse dann untereinander was dann zu einer Fehlermeldung führt da Ebene1 ja öfters in der Liste auftauchen würde.
Ich füge die Function mal mit ein falls es hilft. Vielleicht kann man diese auch so modifizieren das die Ebenene Nebeneinander stehen. Allerdings bleibt dann immernoch das Problem mit der Begrenzung auf Ebene 5.
CREATE FUNCTION [dbo].[SplitTest](@String nvarchar(4000), @Delimiter char(1))
returns @Results TABLE (Items nvarchar(4000))
as
begin
declare @index int
declare @slice nvarchar(4000)
select @index = 1
if @String is null return
while @index != 0
begin
select @index = charindex(@Delimiter,@String)
if @index !=0
select @slice = left(@String,@index - 1)
else
select @slice = @String
insert into @Results(Items) values(@slice)
select @String = right(@String,len(@String) - @index)
if len(@String) = 0 break
end return
end
select *
from dbo.SplitTest
((V:\_general\Testdateien\Robocopy\Batch\Auswertun g\Befehle\Test),'\')
Danke und viele Grüße
Marius
Comment