1

我需要开发一个 Web 服务来使一些文件在外部网站上可用。这些文件在文件服务器上保存和更新,它们的 UNC 路径在数据库中。Web 服务将托管在我们的 DMZ 中的服务器上,并且可以访问数据库但不能访问文件共享。

我看到的选项是:

  1. 将文档上传到 Web 服务器。如果没有 LAN 访问,这很困难。
  2. 编写一个附加过程将文件上传到数据库并从那里提供它们。这会导致到处都有额外的工作,但可能是可以接受的。
  3. 找到某种方法让存储过程从网络共享中读取文件并将它们返回到 Web 服务可能使用的结果集中。

有谁知道我该如何选择选项3?我怀疑我需要将它上传到一个 blob 中并在 web 服务中读取它,但是是否可以仅使用 SQL 将文件加载到 blob 中?

更新:我找到了这个并复制了 ufsReadfileAsString 函数。我不断收到“打开文件时出错”错误,我认为这可能与用户权限有关。

4

1 回答 1

0

终于,将近四年后,我重新审视了它。事实证明这真的很简单!

declare @myFile varchar(max)

select @myFile = BulkColumn
from openrowset(bulk'C:\Path\To\File\Test.txt', single_blob) x;

select @myFile

美中不足的地方显然是文件权限,但是一旦你对它进行了排序,这就很好用了。

于 2017-02-17T07:44:32.863 回答