pg_unescape_bytea
Prev | 4.3.Query Execution Commands | Next

## pg_unescape_bytea

pg_unescape_bytea — 可変長のバイナリ列(バイト配列)列上のSQL 問合せにより返された文字列を非除外し元の二進列を回復する Unescape a string returned by an SQL query on a bytea (byte array) column, recovering the original binary string.

## 構文Synopsis

    pg_unescape_bytea string

## 説明 Description

`pg_unescape_bytea` はバイトa(バイト配列)列が問合せられた時､PostgreSQL によって返された除外されたデータから二進文字列を回復する｡この命令は pg_escape_bytea によって除外された後(譬えば)挿入された垣外列から元のデータを返す｡(準備された問合せの二進様式を使うべき除外と非除外の代替法｡pg_exec_preparedを参照されたい) `pg_unescape_bytea` recovers a binary string from the escaped data returned by PostgreSQL when a bytea (byte array) column is queried. This command returns the original data from a bytea column which was inserted (for example) after being escaped with pg_escape_bytea. (An alternative to escaping and unescaping binary data is to use binary mode prepared queries. See pg_exec_prepared.)

## 引数 Arguments

`string`

  非除外すべき文字列｡これはバイトa列上の問合せの結果の筈｡他の使用法は未定義(註意 参照)｡ The string to unescape. This should be the result of a query on a bytea column. Other uses are undefined (see notes).

## 返り値 Return Value

非除外された二進データ文字列｡これは､通常のtcl文字列であり､任意のバイト値を含み得る｡ The unescaped binary data string. This is a regular Tcl string, which can contain arbitrary byte values.

## 註意 Notes

この命令は PostgreSQL libpq function `PQunescapeBytea`を使い模擬する｡ This command uses or emulates the PostgreSQL libpq function `PQunescapeBytea`.

pg_escape_bytea をも参照されたい｡ 註意すべきは､pg_escape_bytea と pg_unescape_bytea は相互に逆ではない｡譬えば､引用符はpg_escape_bytea によって二つの引用符号に変換されるが､ pg_unescape_bytea は二つの引用符号を非膣の引用符号にもどしはしない｡この非対称は､sql宣言文はバイト列で特別水準の解析して臨む､ pg_escape_bytea は解析の両方の水準の為の文字列を用意する､が､pg_unescape_bytea は場外の一つの水準のみを戻す事に事実に基づく｡ See also pg_escape_bytea. Note that `pg_escape_bytea` and `pg_unescape_bytea` are not inverses of each other. For example, a quote mark is translated to two quote marks by `pg_escape_bytea`, but `pg_unescape_bytea` does not change two quote marks back to a single quote mark. This asymmetry is due to the fact that SQL statements undergo an extra level of parsing with bytea columns. `pg_escape_bytea` prepares a string for both levels of parsing, but `pg_unescape_bytea` only has to undo one level of escaping.

### 警告 Caution

この命令のpgintcl実装は libpq 函数の模擬は正確ではない｡これは､出来栄えの理由によってなされる｡また､PostgreSQL-9.0 の開始に伴い､データベースは平文として返される時にバイトaデータについて二つの異なる符号化手段を運営する:十六進様式と除外様式｡これは､十六進か除外かを採用する `bytea_output` に関する PostgreSQL 構成設定を使って､制御される｡既定は十六進様式である｡しかし､ Pgintcl-3.2.0 とそれ以前の版は十六進様式符号化は運営していない｡ これが直される迄､ pgintcl を使う時､貴下のデータベースはバイト文字列について除外様式を使うことを設定せねばならない｡[pgintcl-3.2.1で回避されたらしい->NEWS.txt参照] The pgintcl implementation of this command is not an accurate emulation of the libpq function. This was done for performance reasons. Also, starting with PostgreSQL-9.0, the database supports two different encoding methods for bytea data when returned as text: hex mode and escape mode. This is controlled using a PostgreSQL configuration setting `bytea_output` which takes the values `hex` or `escape`. The default is hex mode. But Pgintcl-3.2.0 and earlier do not support hex mode encoding. Until this is fixed, you must set your database to use escape mode for bytea strings when using pgintcl.

除外様式の符号化を使う時､ pgintcl はバイト配列の列k上の問合せからの結果のデータとして､正しい結果を返す(即ち､バイト配列出力の背景函数によるどの様なデータ出力でも)｡結果は他の使用については未定義である｡譬えば､二つのバイト並び \a (それは PostgreSQLによってバイト配列の列としては決して出力されない)を､PQunescapeBytea は一つの文字 'a' を返すことになるが､ pg_unescape_bytea は値7のバイトを返す(理由は､ Tcl は \a を ASCII 鐘音 に非除外するから)｡ When using escape mode encoding, pgintcl will return correct results for data that results from a query on a bytea column (that is, any data output by the `byteaout` backend function). Results are undefined for other uses. For example, give the two byte sequence \a (which will never be output by PostgreSQL for a bytea column), `PQunescapeBytea` will return the single character 'a', but `pg_unescape_bytea` will return the byte value 7 (because Tcl unescapes \a to ASCII bell).

この命令は pgtclng-1.5.2 and in pgintcl-2.2.0 で追加された｡ This command was added in pgtclng-1.5.2 and in pgintcl-2.2.0.

用例は Section5.10, “Example - Bytea Escaping - Picture Viewer, Part 2 - View Pictures” を参照されたい｡ See Section5.10, “Example - Bytea Escaping - Picture Viewer, Part 2 - View Pictures” for an example.

Prev | Up | Next
pg_escape_bytea | Home | 4.4.Asynchronous Query Processing Commands