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

## pg_escape_string

pg_escape_string — SQL 文字列定数内に使う為に文字列を除外する Escape a string for use in an SQL string constant

## 構文 Synopsis

    pg_escape_string ?conn? string

## 説明 Description

`pg_escape_string` は､一重引用化された SQL 文字列定数の使用を安全になす様に文字が追加された引数を返す｡全ての一重の全ての引用印を二重化し､ある場合には二重の逆斜線化も行い文字列を返す｡ `pg_escape_string` returns its argument with added characters which makes it safe for use in single-quoted SQL string constants. It returns the string with all single quote marks doubled, and in some cases doubles backslash characters too.

譬えば､ `pg_escape_string {can't}` は､文字列 `can''t` を返す｡[譯註:引用符号奇数個を偶数化して構文不都合を回避] 　 For example, `pg_escape_string {can't}` returns the string `can''t`.

## 引数 Arguments

`conn`

  送付する為に文字列が除外されるべき､接続の追加の把持子｡ Optional handle of the connection that the string should be escaped for sending to.

`string`

  除外すべき文字列｡ 　 The string to escape.

## 返り値 Return Value

追加の文字を伴う文字列引数｡ The string argument, with added characters.

## Notes

See also pg_quote, pg_escape_literal, and pg_escape_identifier.

この命令に追加される `conn` 引数は pgtclng-1.7.0 and in pgintcl-3.1.0 で追加された｡ The optional `conn` argument was added to this command in pgtclng-1.7.0 and in pgintcl-3.1.0.

`conn` 引数は文字揃い符号系情報､及び､ PostgreSQL 中央集中処理系の構成設定媒介変数 `standard_conforming_strings`を得る為に使われる｡文字揃い符号系は多バイト文字の除外処理が混乱しないことを確実にする｡標準適合文字列の状態の設定は逆斜線が二重化される必要性を定める為に使われる｡もし`conn` 假引数が提供されると､特定のデータベース接続が使われることについて正確に設定が定められる｡(註意：この情報は依頼者側に維持され､どの追加データベース中央集中処理系への往来も必要ない) The `conn` argument is used to get character set encoding information, and the state of the PostgreSQL server configuration parameter `standard_conforming_strings`. The character set encoding is used to make sure that multi-byte characters do not confuse the escaping process. The state of the standard conforming strings setting is used to determine if backslashes need to be doubled. If the `conn` parameter is supplied, these settings can be accurately determined for the specific database connection being used. (Note that this information is maintained on the client side and does not necessitate any additional database server traffic.)

`conn` 假引数が供給されない場合､依頼者によるどのデータベース接続からの最も最近の情報に基づいて最良の推論がなされる｡従って､もし､依頼者が単一のデータベース接続をなすか､複数のデータベース接続で､同じ符号系且つ標準に適合する文字列の場合､`conn` を提供する必要はない｡ If the `conn` parameter is not supplied, a best guess will be made based on the most recent information from any database connection by the client. Therefore, if the client makes a single database connection, or multiple connections with the same encoding and setting for standard_conforming_strings, there is no need to provide the `conn` parameter.

### 警告 Caution

Pgintcl は､標準的適合文字列の上のみ､決定する為に `conn` 假引数を使用する｡それに反し､ libpq-基準の対話機能実装では､文字揃い符号系を使用する能力はない｡ Pgintcl uses the `conn` parameter only to determine if standard_conforming_strings is on. Unlike libpq-based interface implementations, it does not have the ability to use character set encoding information.

この命令は､接続把持子が全く提供されない場合､ PostgreSQL libpq function `PQescapeString` を使用し､提供される場合は`PQescapeStringConn`を使用する｡ This command uses or emulates the PostgreSQL libpq function `PQescapeString`, if no connection handle is supplied, or `PQescapeStringConn` if a connection handle is supplied.

### 警告 Caution

http://flightaware.github.com/Pgtcl/ (以前は pgfoundry.org/projects/pgtcl/) に実装されている Pgtcl は同じ名前を有するが､振舞に互換性がない｡pg_escape_string はpg_quote の如く動き､結果の周囲を引用して返す｡ Pgtcl-ng and Pgintcl 実装ではpg_escape_string は libpq PQescapeString() function の振舞に合致し､一個の引用なしの除外された値を返す｡ The Pgtcl implementation at http://flightaware.github.com/Pgtcl/ (previously at pgfoundry.org/projects/pgtcl/) has a command with the same name, but incompatible behavior. Their `pg_escape_string` works like pg_quote, and returns quotes around the result. In the Pgtcl-ng and Pgintcl implementations, `pg_escape_string` matches the libpq `PQescapeString()` function behavior, which returns the escaped value without single quotes.

## 用例 Example

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

Prev | Up | Next
pg_encrypt_password | Home | pg_quote