SQL 解説書
>>-POSSTR--(--source-string--,--search-string--)---------------><
スキーマは SYSIBM です。
POSSTR 関数は、あるストリング (source-string、
ソース・ストリングと呼ばれる) の中で、
別のストリング (search-string、
探索ストリングと呼ばれる) の最初の出現箇所の開始位置を戻します。
search-string の位置を示す数値は、1 から始まります (0 ではない)。
この関数の結果は長精度整数 (large integer) です。
引き数のいずれかがヌル値になる可能性がある場合、
結果もヌル値になる可能性があります。
引き数のいずれかがヌル値の場合、その結果はヌル値です。
- source-string
- 探索が行われる場所としてのソース・ストリングを指定します。
この式は、以下のいずれかによって指定できます。
- 定数
- 特殊レジスター
- ホスト変数 (ロケーター変数またはファイル参照変数を含む)
- スカラー関数
- ラージ・オブジェクトのロケーター
- 列名
- 上記のいずれかを連結する式
- search-string
- ソース・ストリングから探索するストリングを指定する式。
この式は、以下のいずれかによって指定できます。
- 定数
- 特殊レジスター
- ホスト変数
- 上記のいずれかをオペランドとするスカラー関数
- 上記のいずれかを連結する式
以下の制約があります。
- 式の要素に、LONG VARCHAR、CLOB、LONG VARGRAPHIC、
または DBCLOB のタイプを使うことはできません。
また、BLOB ファイル参照変数は使えません。
- search-string の実際の長さは 4 000 バイト以下でなければなりません。
これらの規則は、
LIKE 述部で説明されている pattern-expression の規則と同じです。
search-string と source-string には、
いずれも、ゼロ個以上の連続した位置があります。
ストリングが文字ストリングまたは 2 進ストリングの場合、
1 つの位置は 1 バイトを表します。
ストリングが漢字ストリングの場合、位置は図形 (DBCS) 文字になります。
POSSTR 関数は混合データ・ストリングを受け入れます。
ただし、
POSSTR は、厳密にバイト・カウント単位で計算し、
1 バイト文字と多重バイト文字の間の変更は感知しません。
以下の規則が適用されます。
- source-string と search-string のデータ・タイプは比較可能でなければなりません。
そうでない場合、エラーになります (SQLSTATE 42884)。
- source-string が文字ストリングの場合、
search-string は CLOB または LONG VARCHAR 以外の文字ストリングでなければならず、
実際の長さが 32 672 バイト以下でなければなりません。
- source-string が漢字ストリングの場合、
search-string は DBCLOB または LONG VARGRAPHIC 以外の漢字ストリングでなければならず、
実際の長さが 16 336 以下でなければなりません。
- source-string が 2 進ストリングである場合、source-string は、
実際の長さが 32 672 バイト以下の 2 進ストリングでなければなりません。
- search-string の長さがゼロの場合、
この関数によって戻される結果は 1 です。
- それ以外の場合は、次のとおりです。
- source-string の長さがゼロの場合、
関数によって戻される結果はゼロです。
- それ以外の場合は、次のとおりです。
- search-string が source-string の値のうち、
連続する複数の位置の同じ長さのサブストリングに等しい場合、
この関数によって戻される結果は、
source-string 値の中でそのようなサブストリングのうち最初の開始位置になります。
- それ以外の場合、この関数によって戻される結果は 0 です。
例:
- IN_TRAY 表の項目のうち、
NOTE_TEXT 列に 'GOOD BEER' という語句が含まれている項目について、
RECEIVED 列と SUBJECT 列、およびその語句の開始位置を選択します。
SELECT RECEIVED, SUBJECT, POSSTR(NOTE_TEXT, 'GOOD BEER')
FROM IN_TRAY
WHERE POSSTR(NOTE_TEXT, 'GOOD BEER') <> 0
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]