在PL/SQL存储过程中处理SharePoint URL空格的正确方法
- 手动替换空格为URL编码
直接把路径中所有空格替换为%20即可,修改后的代码示例如下:
多数程序调用接口时不会自动对URL中的原生空格做编码处理,手动替换后即可正常识别。file_path_ varchar2(2000) := 'https://business123.sharepoint.com/sites/TEST/Private%20Documents/Export%20Test'; - 使用SharePoint自动生成的编码后链接
打开SharePoint目标文件夹,右键选择「复制链接」,按你的权限范围选择链接生效范围后,拿到的链接已经自动完成URL编码,不需要手动处理空格,直接复制到代码中即可使用。也可以打开文件夹的「详情」面板,复制「路径」属性下的内容,同样是已经完成编码的可用路径。 - 用代码内置函数自动编码
从你使用的varchar2类型判断是Oracle PL/SQL环境,可以直接调用内置的utl_url.escape函数自动完成编码,无需手动修改路径内容,示例如下:
第二个参数设为file_path_ varchar2(2000) := utl_url.escape('https://business123.sharepoint.com/sites/TEST/Private Documents/Export Test', true);true会保留URL中的冒号、斜杠等合法特殊字符,仅对空格等非安全字符做编码转换。 - 改用WebDAV UNC路径格式
如果你调用的场景支持本地路径格式,可以把HTTPS链接替换为WebDAV的UNC格式,该格式下空格不需要编码,直接填写即可:
仅需确保运行代码的设备已开启WebDAV客户端支持,且当前账号已经配置好SharePoint权限即可正常使用。\\business123.sharepoint.com@SSL\sites\TEST\Private Documents\Export Test
你之前尝试的空字符串拼接、单引号内加双引号的方案,都无法解决URL空格的编码问题,因此不会生效。
内容的提问来源于stack exchange,提问作者Kasia Wichrowska
相关产品推荐
相关产品推荐

