sql-server - SQL Server 2019 路径包含空格时找不到文件夹,加上引号不能解决问题
问题描述
我有一个部署到 SQL Server 的包,其平面文件目标包含一个空格,例如:\\SERVER\Cheesy Beans On Toast\
该包使用连接中的表达式将文件名添加到字符串的末尾,因此最终路径为:\\SERVER\Cheesy Beans On Toast\TheFile.txt
我可以直接从 Visual Studio 运行这个包没有问题,但是一旦部署为 SQL Server 2019,并使用服务代理从作业运行它,我在应该创建输出文件的阶段收到以下错误消息:
无法打开数据文件“\\SERVER\Cheesy Beans On Toast\TheFile.txt”。
当我将文件夹重命名为 CheesyBeansOnToast(无空格)并相应地更新环境变量时,同样的工作运行良好。
不幸的是,这个项目的最终目的地将在文件夹包含空格的服务器上,我无权更改它。
我尝试在连接字符串周围添加单引号和双引号,但是无论是在连接字符串表达式还是输入到连接字符串表达式的变量中执行此操作,我都会得到一个不同的错误:
连接中指定的文件名“\\SERVER\Cheesy Beans On Toast\TheFile.txt”无效。
因此,它选择了我的额外引号,而不是帮助处理空格,而是根本无法识别路径是有效的。
关于如何将包部署在 SQL Server 上以与直接从 Visual Studio 运行它的方式相同的方式接受空格,或者如何让 SQL Server 在在其周围添加引号时理解带空格的路径的任何想法似乎没做什么?我很想重命名目标文件夹,但如上所述,这是我无法控制的。
解决方案
终于解决了!SQL 代理似乎不仅需要 NTFS 访问权限,还需要共享访问权限。重命名文件夹时,共享访问权限必须已删除。
因为我不是管理员,所以我无法查看有关共享访问的任何内容,我只能看到 NTFS 权限,所以我不知道有任何变化。
管理员打开共享访问权限后,它就可以工作了。
推荐阅读
- python - 尝试在 MAC 上将多页 PDF 转换为单个 .png 文件时出现路径错误
- sql - 如何选择 field1 不喜欢 '%query2%' 的位置
- php - Reddit Like 子文件夹重定向
- here-api - 如何删除 HERE SDK 凭据
- java - 通过 XML 和注释启动缓存设置
- ruby-on-rails - Rails Heroku 部署问题
- python - 尝试将数据帧的特定列发送到新的 csv 文件,始终返回空数据帧
- json - Postgres如何嵌套多个json_agg子查询
- jquery - Ajax 无法调用控制器方法
- c - 解析具有不同类型的多个参数行并将它们保存在变量中