Faraday 0 Geschrieben 2. Juli 2015 Melden Teilen Geschrieben 2. Juli 2015 (bearbeitet) Hallo Community, Ich habe eine Prozedur, welche unter anderem einen Pfad und einen Dateinamen in eine Tabelle schreibt. Hier ein Auszug: DECLARE -- @FIRMA INTEGER, @BATYPE CHAR(1), @BANUMMER VARCHAR(15), @LFDNR INTEGER, @DOCDIR VARCHAR(254), @DOCTYPE INTEGER, @DOCNAME VARCHAR(254), @DOCINFO VARCHAR(254), INSERT INTO BAKDOKS ( FIRMA, BATYPE, BANUMMER, LFDNR, DOCDIR, DOCTYP, DOCNAME, DOCINFO) -- SELECT FIRMA, BATYPE, BANUMMER, -- LFDNR '1', -- DOCDIR 'c:\temp', '1', -- DOCNAME (BANUMMER +'-astl.pdf'), -- DOCINFO 'Stückliste' -- FROM BAKOPF WHERE ISNULL(LTRIM(RTRIM(BANUMMER)),'') <> '' AND NOT EXISTS(SELECT * FROM BAKDOKS WHERE BAKDOKS.FIRMA = BAKOPF.FIRMA AND BAKDOKS.BANUMMER = BAKOPF.BANUMMER AND BAKDOKS.LFDNR = 1) Nun möchte ich allerdings diese Werte nur in die Tabelle BAKDOKS schreiben, wenn der Pfad inkl. Dateiname ('c:\temp\' + BANUMMER + '-astl.pdf') auch tatsächlich existiert (!). Zur Prüfung, ob ein Pfad existiert habe ich folgenden Ansatz gefunden: DECLARE @datei_vorhanden int EXEC master..xp_fileexist 'c:\winnt\notepad.exe', @datei_vorhanden OUTPUT IF @datei_vorhanden = 1 PRINT 'Datei existiert' ELSE PRINT 'Datei existiert nicht.' Leider weiß ich nicht, wie ich das in mein Statement einbauen kann. Ein EXEC im Where-Clause ist nicht möglich, soviel ich weiß. Kann jemand helfen? Danke :-) Gruß Faraday bearbeitet 2. Juli 2015 von Faraday Zitieren Link zu diesem Kommentar
dba2008 0 Geschrieben 7. September 2015 Melden Teilen Geschrieben 7. September 2015 Hast Du SSIS installiert? Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 7. September 2015 Melden Teilen Geschrieben 7. September 2015 Moin, es wird davon abgeraten, innerhalb von T-SQL-Code Shellfunktionen auszuführen. Meist ist es ein sinnvollerer Weg, solche Prüfungen außerhalb der Datenbank auszuführen und dann von dort ein Ergebnis in die Datenbank zu schreiben (z.B. in einer Hilfstabelle). Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.