【问题标题】:Space in parameters for Azure SQL Data Warehouse connection stringAzure SQL 数据仓库连接字符串的参数中的空格
【发布时间】:2017-03-07 20:18:47
【问题描述】:

我现在正在将我的 Azure SQL 数据仓库上的 JDBC 连接字符串升级到新规范,特别是添加以下内容:Application Name=MyApp

这是我的问题。我使用以下字符串连接到我的服务器:

jdbc:sqlserver://localhost:1234;database=mydb;encrypt=true;trustServerCertificate=true;

如果我将应用程序名称添加到我的字符串中,它将变为以下内容:

jdbc:sqlserver://localhost:1234;database=mydb;encrypt=true;trustServerCertificate=true;Application Name=MyApp

看到ApplicationName 之间的空格了吗?

我的问题是 - 这是对的吗?我是否需要将该空间编码为%20 之类的东西?

如果连接字符串是 URL,他们在 Microsoft 文档中没有提到这种必要性。

编辑 1:我发现了一些与 JDBC 连接字符串相关的东西,但它没有指定任何可能包含空格的参数:https://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-connect-overview/

编辑 2:找到这个 here

连接 URL 中的转义值 由于包含空格、分号和引号等特殊字符,您可能必须转义连接 URL 值的某些部分。如果这些字符用大括号括起来,则 JDBC 驱动程序支持对它们进行转义。例如,{;} 转义分号。 转义值可以包含特殊字符(尤其是 '='、';'、'[]' 和空格),但不能包含大括号。必须转义并包含大括号的值应添加到属性集合中。

【问题讨论】:

    标签: jdbc azure-sql-database mssql-jdbc azure-sqldw


    【解决方案1】:

    您不必为应用程序名称属性添加任何转义字符。关于转义的 cmets 适用于连接字符串的 URL 组件,而不是整个连接字符串。

    不过,我相信无论如何您都应该使用 ApplicationName 作为属性值。

    【讨论】:

    • 是的,你是对的,至少对于 Azure SQL。你知道 Azure SQL DW 是不是也一样?另外,如何在 Azure SQL DW 中检查应用名称设置是否正确?
    猜你喜欢
    • 2015-03-30
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多