Файлы в хранимой процедуре SQL - PullRequest
0 голосов
/ 21 июня 2010

В настоящее время мне поручено прочитать некоторые данные, которые хранятся в плоском файле, в моей базе данных и составить отчеты по ним.Одна проблема, с которой я сталкиваюсь, это проверка, существует ли файл на самом деле.Есть ли простая функция, чтобы проверить, существует ли файл?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 21 июня 2010

Просто погуглив, я нашел это в SQL DBA и это в советах MS SQL.

1 голос
/ 21 июня 2010

Вы делаете ETL в хранимой процедуре? !!Я не думаю, что вы должны, просто потому что вы можете.

Я рекомендую вам использовать SSIS для этого.Использование ETL в Stored Proc или TSQL не является рекомендуемой практикой, фактически оно часто используется в качестве примера того, чего не следует делать.

0 голосов
/ 21 июня 2010

Полагаю, вы можете сделать что-то вроде этого:

DECLARE @Path varchar(128) ,
 @FileName varchar(128)
 SET @Path = 'C:\'
 SET @FileName = 'FILE_NAME.EXT'

DECLARE @objFSys int
DECLARE @i int
DECLARE @File varchar(1000)

 SET @File = @Path + @FileName
 EXEC sp_OACreate 'Scripting.FileSystemObject', @objFSys out
 EXEC sp_OAMethod @objFSys, 'FileExists', @i out, @File
 IF @i = 1
  PRINT 'file exists'
 ELSE
  PRINT 'file does not exists'
 EXEC sp_OADestroy @objFSys 

В этой статье рассматривается этот метод и пара других.

...