4.2.6 extracts

登録した文書または文字列データを出力します。出力形式には次に示す種類があります。

どの出力形式で出力するかは,extracts関数の引数で区別されます。

なお,FREEWORD型では,SGML出力,プレーン出力,およびXML出力は使用できません。

特に,文字コードutf-8でこの関数を使用する場合,次の制限があります。

また,extracts関数を使用したSQLの前処理後(PREPARE文の発行後),DESCRIBE〔OUTPUT〕文の実行時にSQL記述領域に設定されるデータの長さは次のとおりです。

次に,各出力形式について説明します。

<この項の構成>
(1) 原文書出力(SGMLTEXT型の場合)
(2) 原文書出力(FREEWORD型の場合)
(3) SGML出力
(4) プレーン出力
(5) XML出力

(1) 原文書出力(SGMLTEXT型の場合)

(a) 機能

登録した文書全体(原文書)を出力します。

(b) 書式

extracts(列指定)

(c) 入力

列指定

(d) 戻り値

テキストデータ(BLOB)

(e) 詳細

列指定には,検索をするSGMLTEXT型の列名を指定します。

(f) SQL文の例
表「reports」のSGMLTEXT型の列「doc」の「概要」部分に文字列「COMPUTER」を含む文書全体(原文書)を出力する(文書の最上位構造は「文章」)。

SELECT extracts(doc)  FROM reports
 WHERE contains(doc, '文章[概要{"COMPUTER"}]' ) IS TRUE

(2) 原文書出力(FREEWORD型の場合)

(a) 機能

登録した文字列データ全体(原文書)を出力します。

(b) 書式

extracts(列指定)

(c) 入力

列指定

(d) 戻り値

文字列データ(VARCHAR)

(e) 詳細

列指定には,FREEWORD型の列名称を指定します。

(f) SQL文の例
表「reports」のFREEWORD型の列「fword」に文字列「COMPUTER」を含む文字列全体(原文書)を出力する。

SELECT extracts(fword)  FROM reports
 WHERE contains(fword, '{"COMPUTER"}' ) IS TRUE

(3) SGML出力

(a) 機能

SGML文書の特定構造の抽出およびハイライトタグの埋め込みをして,SGML形式で出力します。出力文書には,DTDを付けます。

(b) 書式

extracts(列指定,抽出構造名,ハイライト位置条件式,ハイライトタグ名)

(c) 入力
(d) 戻り値

テキストデータ(BLOB)

(e) 詳細
(f) SQL文の例
表「reports」のSGMLTEXT型の列「doc」の「概要」部分に文字列「COMPUTER」を含む文書の「概要」をSGML形式で出力する。その際,文字列「COMPUTER」を強調表示するハイライトタグ(STRONG)を埋め込む(文書の最上位構造は「文章」)。

SELECT extracts(doc, '文章.概要', '文章[概要{"COMPUTER"}]', 'STRONG')
      FROM reports
      WHERE contains(doc, '文章[概要{"COMPUTER"}]') IS TRUE

(4) プレーン出力

(a) 機能

構造化文書の特定構造の抽出をして,プレーン形式で出力します。

(b) 書式

extracts(列指定,抽出構造名)

(c) 入力
(d) 戻り値

テキストデータ(BLOB)

(e) 詳細
(f) SQL文の例
表「reports」のSGMLTEXT型の列「doc」の「概要」部分に文字列「COMPUTER」を含む文書の「概要」をプレーン形式で出力する(文書の最上位構造は「文章」)。

SELECT extracts(doc, '文章.概要')
      FROM reports
      WHERE contains(doc, '文章[概要{"COMPUTER"}]') IS TRUE

(5) XML出力

(a) 機能

構造化文書の特定構造の抽出,およびハイライトタグの埋め込みをして,ウェルフォームドXML文書で出力します。出力文書には,XML宣言を付けます。

(b) 書式

extracts(列指定,抽出構造名,ハイライト位置条件式,ハイライトタグ名,ドキュメントタイプ)

(c) 入力
(d) 戻り値

テキストデータ(BLOB)

(e) 詳細
(f) SQL文の例
表「reports」のSGMLTEXT型の列「doc」の「概要」部分に文字列「COMPUTER」を含む文書の「概要」をXML形式で出力する。その際,文字列「COMPUTER」を強調表示するハイライトタグ(STRONG)を埋め込む(文書の最上位構造は「文章」)。

SELECT extracts(doc, '文章.概要', '文章[概要{"COMPUTER"}]', 'STRONG','XML')
      FROM reports
      WHERE contains(doc, '文章[概要{"COMPUTER"}]') IS TRUE