バイナリ列関数と演算子

PostgreSQL 8.0.0 文書
前のページ | 巻戻し | 第 9章関数と演算子 | 早送り | 次のページ

# 9.5. バイナリ列関数と演算子

本節では`bytea`型の値を調べたり操作するための関数と演算子について説明します。

SQLでは、引数の区切りにカンマではなく特定のキーワードを使う特殊な構文の文字列関数を、いくつか定義しています。 詳細は表9-8を参照してください。 これら関数は通常の関数呼び出し構文を使用して実装されています。 (表9-9を参照してください。)

表 9-8. SQLバイナリ列関数と演算子

関数 | 戻り値型 | 説明 | 例 | 結果
--- | --- | --- | --- | ---
``string` `||` `string`` | `bytea` | 文字列結合 | `'\\\\Post'::bytea || '\\047gres\\000'::bytea` | `\\Post'gres\000`
``octet_length`(`string`)` | `integer` | バイナリ列のバイト数 | `octet_length( 'jo\\000se'::bytea)` | `5`
``position`(`substring` in `string`)` | `integer` | 指定された部分文字列の場所 | `position('\\000om'::bytea in 'Th\\000omas'::bytea)` | `3`
``substring`(`string` [from `integer`] [for `integer`])` | `bytea` | 部分文字列の取り出し | `substring('Th\\000omas'::bytea from 2 for 3)` | `h\000o`
``trim`([both] `bytes` from `string`)` | `bytea` | `bytes`で指定されるバイトのみを含む最も長い文字列を`string`の先頭と末尾から削除します。 | `trim('\\000'::bytea from '\\000Tom\\000'::bytea)` | `Tom`
`get_byte`(`string`, `offset`) | `integer` | 文字列から1バイトを取り出す。 | `get_byte('Th\\000omas'::bytea, 4)` | `109`
`set_byte`(`string`, `offset`, `newvalue`) | `bytea` | 文字列内の1バイトを設定する。 | `set_byte('Th\\000omas'::bytea, 4, 64)` | `Th\000o@as`
`get_bit`(`string`, `offset`) | `integer` | 文字列から1ビットを取り出す。 | `get_bit('Th\\000omas'::bytea, 45)` | `1`
`set_bit`(`string`, `offset`, `newvalue`) | `bytea` | 文字列内の1ビットを設定する。 | `set_bit('Th\\000omas'::bytea, 45, 0)` | `Th\000omAs`

このほか、表9-9に列挙するバイナリ列操作関数が使えます。 そのいくつかは、表9-8で説明した標準SQLの文字列関数を実装するために内部的に使用されています。

表 9-9. その他のバイナリ列関数

関数 | 戻り値型 | 説明 | 例 | 結果
--- | --- | --- | --- | ---
``btrim`(`string` `bytea`, `bytes` `bytea`)` | `bytea` | `bytes`で指定されたバイトのみを有する最長の文字列を`string`の先頭と末尾から削除します。 | `btrim('\\000trim\\000'::bytea, '\\000'::bytea)` | `trim`
``length`(`string`)` | `integer` | バイナリ列の長さ | `length('jo\\000se'::bytea)` | `5`
``decode`(`string` `text`, `type` `text`)` | `bytea` | 以前に`encode()`で符号化された`string`からバイナリ列を復号します。 パラメータの型は`encode()`と同じです。 | `decode('123\\000456', 'escape')` | `123\000456`
``encode`(`string` `bytea`, `type` `text`)` | `text` | バイナリ列をASCIIのみの表現に符号化します。 サポートされている型は、`base64`、`hex`、`escape`です。 | `encode('123\\000456'::bytea, 'escape')` | `123\000456`

前のページ | ホーム | 次のページ
文字列関数と演算子 | 上に戻る | ビット文字列関数と演算子