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