現在、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 ドライバーは、これらの文字が中括弧で囲まれている場合、エスケープをサポートしています。たとえば、{;} はセミコロンをエスケープします。エスケープされた値には、特殊文字 (特に「=」、「;」、「[]」、およびスペース) を含めることができますが、中括弧を含めることはできません。エスケープする必要があり、中かっこを含む値は、プロパティ コレクションに追加する必要があります。