pg_escape_literal
Prev | 4.3.Query Execution Commands | Next

## pg_escape_literal

pg_escape_literal — 逐語的SQL文字列として使える様､文字列を引用し除外処理する Escape and quote a string for use as an SQL string literal

## 構文 Synopsis

    pg_escape_literal conn string

## Description

pg_escape_literal は､その文字列引数を､逐語的SQL文字列(又は､文字列定数)として 使用する為の､安全に引用され除外処理された文字列を返す｡ `pg_escape_literal` returns its string argument safely escaped and quoted for use as an SQL string literal (or string constant).

譬えば､pg_escape_literal $conn "can't" は､文字列 `'can''t'` を返す｡ For example, `pg_escape_literal $conn "can't"` returns the string `'can''t'`.

## Arguments

`conn`

  送付する為に文字列を除外扱いすべき命令の把持子｡ (註意: pgintcl はこの引数を使わない｡) Handle of the connection that the string should be escaped for sending to. (Note: This argument is not used by pgintcl.)

`string`

  引用し､除外扱いすべき文字列｡ The string to quote and escape.

## 戻り値 Return Value

一重の引用を含み､ 逐語的 SQL 文字列の使用に適する､文字列引数｡ The string argument, suitable for use as an SQL string literal, including surrounding single quotes.

## 註意 Notes

pg_quoteと pg_escape_stringと pg_escape_identifierを参照されたい｡ See also pg_quote, pg_escape_string, and pg_escape_identifier.

pg_escape_literal は実質的に pg_quote と同じで､ 逐語的SQL として使用するに適する様､引用され除外処理された文字引数を返す｡ 返される結果と実装.が異なる場合は以下の通り: `pg_escape_literal` is effectively equivalent to pg_quote, in that both return their string arguments quoted and escaped, suitable for use as an SQL literal. The return results and implementations differ:

- pg_quote は､文字列内部の逆斜線に特別の処理が必要か否かを定める為の standard_conforming_strings PostgreSQL 引数 の設定確認を試みる｡ pg_escape_literal は standard_conforming_stringsに依拠せず､正しい結果を返す｡ `pg_quote` attempts to account for the setting of the `standard_conforming_strings` PostgreSQL parameter, to determine if backslashes inside the string need special processing. `pg_escape_literal` returns a result that is correct independent of `standard_conforming_strings`.

- pg_quote では`conn` 假引数は任意だが､ pg_escape_literal では必須である｡ The `conn` parameter is optional with `pg_quote`, but required with `pg_escape_literal`.

- pg_escape_literal からの結果は､PostgreSQL Escape String notation (`E'...'`) を使い､ もし､文字列が幾つかの逆斜線を含んでいると､内部で二重逆斜線を伴い､ 文字列が逆斜線を含まないと､標準逐語的表示になる｡ pg_quote は常に､標準SQL引用逐次表示を使う｡ The result from `pg_escape_literal` uses the PostgreSQL Escape String notation (`E'...'`), with doubled backslashes inside, if the string contains any backslashes, and the standard quoted literal notation if the string does not contain backslashes. The result from `pg_quote` always uses the standard SQL quoted literal notation.

この命令は pgtclng-2.1.0版 と pgintcl-3.5.0版 に追加された｡ This command was added in pgtclng-2.1.0 and in pgintcl-3.5.0.

`conn` 引数は､文字揃い符号系情報を 得る為に使われ､それは､多バイト文字の外処理段階での混乱を確実に避ける為に､ 使われる｡ The `conn` argument is used to get character set encoding information, which is used to make sure that multi-byte characters do not confuse the escaping process.

### 警告 Caution

libpq-基準の対話実装とは異なり､Pgintcl は､文字揃い符号系情報を使う能力がない ので `conn` 假引数を全く使えない｡ Unlike libpq-based interface implementations, Pgintcl does not have the ability to use character set encoding information, and so it does not use the `conn` parameter at all.

この命令はPostgreSQL-9.0.0内で追加されたPostgreSQL libpq 函数 PQescapeIdentifier を使い模擬する｡ This command uses or emulates the PostgreSQL libpq function `PQescapeIdentifier`, which was added in PostgreSQL-9.0.0.

## Example

    set sql "SELECT * FROM mytable WHERE name = [pg_escape_literal $itemname]"

Prev | Up | Next
pg_escape_identifier | Home | pg_escape_bytea