Unverständlicher Fehler beim Aufruf der xp_fileexist

Letztens hatte ich eine kuriose Fehlermeldung beim Ausführen von xp_fileexist.

 

DECLARE @FileExists INT, @MailAnhangPfad NVARCHAR(MAX)

SET @MailAnhangPfad = 'D:test.txt'  

EXEC master.sys.xp_fileexist @MailAnhangPfad, @FileExists OUT

 

Der Fehler sah folgendermaßen aus:

  

Msg 22027, Level 15, State 1, Line 0 

Usage: EXECUTE xp_fileexist [, OUTPUT]

 

Die Fehlermeldung wird eigentlich nur geworfen, wenn nichts übergeben wurde. Aber in diesem Fall kommt der Fehler auch, weil die Variable @MailAnhangPfad NVARCHAR(MAX) ist und das verarbeitet die Prozedur nicht. Deswegen hilft einfach statt NVARCHAR(MAX) NVARCHAR(4000) zu verwenden. Das heißt, der Code muss wie folgt geändert werden:

  

DECLARE @FileExists INT, @MailAnhangPfad NVARCHAR(4000)

SET @MailAnhangPfad = 'D:test.txt'  

EXEC master.sys.xp_fileexist @MailAnhangPfad, @FileExists OUT

 

Und dann klappt es auch ... 

Kommentar schreiben

Kommentare: 0