0

現在、Azure SQL Data Warehouse の 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

Applicationとの間のスペースを参照してくださいName

私の質問は - これは正しいですか? そして、そのスペースを次のようなものにエンコードする必要があり%20ますか?

接続文字列が URL の場合、Microsoft ドキュメントのどこにもこの必要性について言及されていません。

編集 1: JDBC 接続文字列に関連するものを見つけましたが、スペースを含む可能性のあるパラメーターは指定されていません: https://azure.microsoft.com/en-us/documentation/articles/sql-data-倉庫接続の概要/

編集2:ここでこれを見つけました

接続 URL の値のエスケープ スペース、セミコロン、引用符などの特殊文字が含まれているため、接続 URL 値の特定の部分をエスケープする必要がある場合があります。JDBC ドライバーは、これらの文字が中括弧で囲まれている場合、エスケープをサポートしています。たとえば、{;} はセミコロンをエスケープします。エスケープされた値には、特殊文字 (特に「=」、「;」、「[]」、およびスペース) を含めることができますが、中括弧を含めることはできません。エスケープする必要があり、中かっこを含む値は、プロパティ コレクションに追加する必要があります。

4

1 に答える 1

1

Application Name プロパティにエスケープ文字を追加する必要はありません。エスケープに関するコメントは、接続文字列全体ではなく、接続文字列の URL コンポーネントに適用されます。

ただし、とにかく ApplicationName をプロパティ値として使用する必要があると思います。

于 2016-10-25T20:31:36.473 に答える