【问题标题】:Files in SQL stored procedureSQL 存储过程中的文件
【发布时间】:2011-03-06 09:52:35
【问题描述】:

我目前的任务是将一些存储在平面文件中的数据读入我的数据库并针对它运行报告。我遇到的一个问题是检查文件是否确实存在。有没有简单的函数来检查文件是否存在?

谢谢!

【问题讨论】:

    标签: sql stored-procedures file-exists


    【解决方案1】:

    我只是在谷歌上搜索,我在 SQL DBA 中找到了this,在 MS SQL 提示中找到了this

    【讨论】:

    • 哼...看来我的谷歌技能今天不太好用。感谢您的帮助!
    【解决方案2】:

    您在存储过程中进行 ETL?!!我不认为你应该这样做,只是因为你可以。

    我建议您为此使用 SSIS。在 Stored Proc 或 TSQL 中做 ETL 不是推荐的做法,事实上,它经常被用作不做的例子。

    【讨论】:

    • 我不是,主要是因为已经有一个程序可以用来导入别人编码的文件。我只是在将文件发送到该程序之前检查文件是否存在。不过你已经引起了我的兴趣。你知道我可以从中学习使用 SSIS 的任何好的资源吗?
    • @Shaded 我将从微软出版社的 SQL Server Integration Services Step By Step 书开始
    • @Shaded 看看这个microsoft.com/downloads/…
    【解决方案3】:

    我相信你可以这样做:

    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 
    

    This article 介绍了这个方法和其他几个方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 2011-08-03
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 2018-10-03
      • 2018-05-08
      相关资源
      最近更新 更多