SQL Server 識別子のエンコードとデコード

SQL Server の区切られた識別子には、Windows PowerShell パスでサポートされない文字が含まれる場合があります。 これらの文字は、16 進数値にエンコードすることによって指定できます。

  1. 作業を開始する準備: 制限事項と制約事項

  2. 特殊文字を処理する方法: 識別子のエンコード、識別子のデコード

作業を開始する準備

Windows PowerShell パス名でサポートされない文字は、"**%**xx" のように、"%" 文字の後に文字を表すビット パターンの 16 進値を付加して表す、つまりエンコードすることができます。 エンコードは、Windows PowerShell パスでサポートされない文字を処理する場合にいつでも使用できます。

Encode-SqlName コマンドレットは、SQL Server 識別子を入力として受け取ります。 また、Windows PowerShell 言語ではサポートされないすべての文字が "%xx" でエンコードされた文字列を出力します。 Decode-SqlName コマンドレットは、エンコードされた SQL Server 識別子を入力として受け取り、元の識別子を返します。

制限事項と制約事項

Encode-Sqlname コマンドレットと Decode-Sqlname コマンドレットでエンコードまたはデコードできるのは、SQL Server の区切られた識別子ではサポートされるが PowerShell パスではサポートされない文字のみです。 Encode-SqlName によってエンコードされ、Decode-SqlName によってデコードされる文字を次に示します。

文字

\

/

:

%

<

>

*

?

[

]

|

16 進エンコード

%5C

%2F

%3A

%25

%3C

%3E

%2A

%3F

%5B

%5D

%7C

[先頭に戻る]

識別子のエンコード

PowerShell パス内で SQL Server 識別子をエンコードするには

  • SQL Server 識別子をエンコードするには、次の 2 つの方法のいずれかを使用します。

    • サポートされていない文字の 16 進数コードを、%XX という構文 (XX は 16 進数コード) を使用して指定します。

    • 識別子を引用符で囲まれた文字列として Encode-Sqlname コマンドレットに渡します。

例 (エンコード)

この例では、":" 文字のエンコードされたバージョン (%3A) を指定します。

Set-Location Table%3ATest

あるいは、Encode-SqlName を使用して Windows PowerShell でサポートされる名前を作成できます。

Set-Location (Encode-SqlName "Table:Test")

[先頭に戻る]

識別子のデコード

PowerShell パスの SQL Server 識別子をデコードするには

16 進数エンコードを、そのエンコードが表す文字に置換するには、Decode-Sqlname コマンドレットを使用します。

例 (デコード)

次の例は、"Table:Test" を返します。

Decode-SqlName "Table%3ATest"

[先頭に戻る]

関連項目

概念

PowerShell での SQL Server 識別子

SQL Server PowerShell プロバイダー

SQL Server PowerShell