14 CTX_THESパッケージ

この章では、シソーラスを管理および参照するためのCTX_THESパッケージの使用方法について説明します。これらのシソーラスのファンクションは、特に指定されていない場合は、ISO-2788およびANSI Z39.19規格に基づいています。

シソーラスへの情報の格納方法を理解しておくと、シソーラス演算子を使用した問合せを記述する際に役立ちます。また、シソーラスを使用して、英語とフランス語でのABOUT問合せおよびドキュメント・テーマの生成に使用するナレッジ・ベースを拡張できます。

CTX_THESには、次のストアド・プロシージャおよびファンクションが含まれています。

名前 説明

ALTER_PHRASE

シソーラス句を変更します。

ALTER_THESAURUS

シソーラスを名前変更または切り捨てます。

BT

句のすべての上位語を戻します。

BTG

句のすべての上位汎用語を戻します。

BTI

句のすべての上位インスタンス語を戻します。

BTP

句のすべての上位部分語を戻します。

CREATE_PHRASE

指定されたシソーラスに句を追加します。

CREATE_RELATION

2つの句の間にリレーションを作成します。

CREATE_THESAURUS

指定されたシソーラスを作成します。

CREATE_TRANSLATION

句に対する新しい翻訳を作成します。

DROP_PHRASE

シソーラスから句を削除します。

DROP_RELATION

2つの句の間のリレーションを削除します。

DROP_THESAURUS

指定されたシソーラスをシソーラス表から削除します。

DROP_TRANSLATION

句に対する翻訳を削除します。

EXPORT_THESAURUS

シソーラス表からシソーラスをエクスポートします。

HAS_RELATION

シソーラス・リレーションの存在の有無をテストします。

IMPORT_THESAURUS

シソーラス表にシソーラスをインポートします。

NT

句のすべての下位語を戻します。

NTG

句のすべての下位汎用語を戻します。

NTI

句のすべての下位インスタンス語を戻します。

NTP

句のすべての下位部分語を戻します。

OUTPUT_STYLE

拡張ファンクションの出力スタイルを設定します。

PT

句の優先語を戻します。

RT

句の関連語を戻します。

SN

句のスコープ・ノートを戻します。

SYN

句のシノニム語句を戻します。

THES_TT

句のすべての最上位語を戻します。

TR

句の外国語の等価語を戻します。

TRSYN

句の外国語の等価語、句のシノニムおよびシノニムの外国語の等価語を戻します。

TT

句の最上位語を戻します。

UPDATE_TRANSLATION

既存の翻訳を更新します。

ノート:

CTX_THESパッケージのAPIは、スキーマまたは所有者名を接頭辞として使用する識別子をサポートしていません。

関連項目:

シソーラス演算子の詳細は、「Oracle Text CONTAINS問合せ演算子」を参照してください。

14.1 ALTER_PHRASE

シソーラスの既存の句を変更します。句を変更できるのは、CTXSYSまたはシソーラスの所有者のみです。

構文

CTX_THES.ALTER_PHRASE(tname      in varchar2, 
                       phrase     in varchar2,
                       op         in varchar2,
                       operand    in varchar2 default null);
tname

シソーラス名を指定します。

phrase

変更する句を指定します。

op (操作を変更)

変更操作を文字列または記号として指定します。次の操作の1つを、opoperandの組で指定できます。

op (または操作を変更) 意味 operand

RENAME

または

CTX_THES.OP_RENAME

句を名前変更します。シソーラスに新しい句がすでに存在している場合は、このプロシージャによって例外が発生します。

新しい句を指定します。修飾子を挿入し、句に対する修飾子を変更、追加または削除できます。

PT

または

CTX_THES.OP_PT

句を優先語にします。シノニム・リングにある既存の優先語は、非優先シノニムになります。

(なし)

SN

または

CTX_THES.OP_SN

句のスコープ・ノートを変更します。

新しいスコープ・ノートを指定します。

operand

引数を指定し、操作を変更します。「op (操作を変更)」の表を参照してください。

シソーラスの中のスペルの間違っているワードを修正します。

ctx_thes.alter_phrase('thes1', 'tee', 'rename', 'tea');

mercury (metal)から修飾子を削除します。

ctx_thes.alter_phrase('thes1', 'mercury (metal)', 'rename', 'mercury');

mercuryに修飾子を追加します。

ctx_thes.alter_phrase('thes1', 'mercury', 'rename', 'mercury (planet)');

シノニム・リング内でKowalskiを優先語にします。

ctx_thes.alter_phrase('thes1', 'Kowalski', 'pt');

view camerasのスコープ・ノートを変更します。

ctx_thes.alter_phrase('thes1', 'view cameras', 'sn', 'Cameras with lens focusing');

14.2 ALTER_THESAURUS

このプロシージャを使用して、既存のシソーラスを名前変更または切り捨てます。指定されたシソーラスでこのファンクションをコールできるのは、シソーラスの所有者またはCTXSYSユーザーのみです。

構文

CTX_THES.ALTER_THESAURUS(tname     in   varchar2,
                          op       in   varchar2,
                          operand  in   varchar2 default null);
tname

シソーラス名を指定します。

op

変更操作を文字列または記号として指定します。次の2つの操作のいずれかを指定できます。

op 意味 operand

RENAME

または

CTX_THES.OP_RENAME

シソーラスを名前変更します。新しい名前がすでに存在している場合は、エラーが戻ります。

新しいシソーラス名を指定します。

TRUNCATE

または

CTX_THES.OP_TRUNCATE

シソーラスを切り捨てます。

なし。

operand

引数を指定し、操作を変更します。opの表を参照してください。

シソーラスTHES1MEDICALに名前変更します。

ctx_thes.alter_thesaurus('thes1', 'rename', 'medical'); 

または

ctx_thes.alter_thesaurus('thes1', ctx_thes.op_rename, 'medical');

すべてのop引数に対して記号を使用できますが、これ以降の例ではすべて文字列を使用しています。

シソーラスTHES1からすべての句およびリレーションを削除します。

ctx_thes.alter_thesaurus('thes1', 'truncate');

14.3 BT

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位語を戻します。

構文1: 表結果

CTX_THES.BT(restab IN OUT NOCOPY EXP_TAB,
            phrase IN VARCHAR2, 
            lvl    IN NUMBER DEFAULT 1,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.BT(phrase IN VARCHAR2, 
            lvl    IN NUMBER DEFAULT 1,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で上位語の文字列を戻します。

 {bt1}|{bt2}|{bt3} ...

文字列結果

catに対して次のエントリを持つ、MY_THESというシソーラスがあるとします。

cat 
   BT1 feline 
     BT2 mammal 
       BT3 vertebrate 
         BT4 animal

catに対する上位語を2レベル上まで検索するには、次の文を入力します。

set serveroutput on

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.bt('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('The broader expansion for CAT is: '||terms); 
end; 

このコードは、次の出力結果を戻します。

The broader expansion for CAT is: {cat}|{feline}|{mammal}

表結果

次の例は、表の結果を利用してbrown wolfに対する広義用語の検索を実行します。

set serveroutput on

declare
  xtab ctx_thes.exp_tab;
begin
  ctx_thes.bt(xtab, 'brown wolf', 2, 'my_thesaurus');
  for i in 1..xtab.count loop
    dbms_output.put_line(xtab(i).rel||' '||xtab(i).phrase);
  end loop;
end;

このコードは、次の出力結果を戻します。

PHRASE BROWN WOLF
BT WOLF
BT CANINE
BT ANIMAL

14.4 BTG

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位汎用語を戻します。

構文1: 表結果

CTX_THES.BTG(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.BTG(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で上位汎用語の文字列を戻します。

 {bt1}|{bt2}|{bt3} ...

catに対する上位汎用語を2レベル上まで検索するには、次の文を入力します。

set serveroutput on
declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.btg('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the broader expansion for CAT is: '||terms); 
end; 

14.5 BTI

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位インスタンス語を戻します。

構文1: 表結果

CTX_THES.BTI(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.BTI(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で上位インスタンス語の文字列を戻します。

 {bt1}|{bt2}|{bt3} ...

catに対する上位インスタンス語を2レベル上まで検索するには、次の文を入力します。

set serveroutput on
declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.bti('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the broader expansion for CAT is: '||terms); 
end; 

14.6 BTP

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての上位部分語を戻します。

構文1: 表結果

CTX_THES.BTP(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.BTP(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す上位語のレベルを指定します。たとえば、2を指定することによって、句の上位語の上位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で上位語の文字列を戻します。

 {bt1}|{bt2}|{bt3} ...

catに対する2つの上位部分語を検索するには、次の文を入力します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.btp('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the broader expansion for CAT is: '||terms); 
end; 

14.7 CREATE_PHRASE

CREATE_PHRASEプロシージャは、新しい句を指定したシソーラスに追加します。

ノート:

このプロシージャでもシソーラスのリレーションを作成できますが、シソーラスにリレーションを作成する場合は、CTX_THES.CREATE_PHRASEではなくCTX_THES.CREATE_RELATIONを使用することをお薦めします。

構文

CTX_THES.CREATE_PHRASE(tname   IN VARCHAR2,
                       phrase  IN VARCHAR2,
                       rel     IN VARCHAR2 DEFAULT NULL,
                       relname IN VARCHAR2 DEFAULT NULL);
tname

新しい句を追加するシソーラスまたは既存の句があるシソーラスの名前を指定します。

phrase

シソーラスに追加する句、または新しいリレーションを作成する句を指定します。

rel

phraseおよびrelnameの間の新しい関係を指定します。このパラメータは、下位互換用にのみサポートされます。CTX_THES.CREATE_RELATIONを使用して、新しいリレーションをシソーラスに作成します。

relname

phraseに関連する既存の句を指定します。このパラメータは、下位互換用にのみサポートされます。CTX_THES.CREATE_RELATIONを使用して、新しいリレーションをシソーラスに作成します。

戻り値

エントリのIDです。

この例では、2つの新しい句(osおよびoperating system)がtech_thesという名前のシソーラスに作成されます。

begin
   ctx_thes.create_phrase('tech_thes','os');
   ctx_thes.create_phrase('tech_thes','operating system');
end;

14.8 CREATE_RELATION

シソーラスの中の2つの句の間にリレーションを作成します。ワードの長さに応じて、シノニム・リングの長さが約4000個のシノニムに制限されます。

ノート:

シソーラスにリレーションを作成するには、CTX_THES.CREATE_PHRASEではなくCTX_THES.CREATE_RELATIONを使用することをお薦めします。

指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYSユーザーのみです。

構文

CTX_THES.CREATE_RELATION(tname      in    varchar2,
                         phrase     in    varchar2,
                         rel        in    varchar2,
                         relphrase  in    varchar2);
tname

シソーラス名を指定します。

phrase

変更または作成する句を指定します。phraseが明確な同形異義語の場合は、修飾子を指定する必要があります。phraseがシソーラスに存在しない場合は作成されます。

rel

削除するリレーションを指定します。phraseからrelphraseへのリレーションになります。次のリレーションのいずれかを指定できます。

リレーション 意味 relphrase

BT*/NT*

階層におけるリレーションを追加します。

関係付けられた句を指定します。phraseからrelphraseへのリレーションと解釈されます。

RT

関連語のリレーションを追加します。

関連付ける句を指定します。

SYN

句をシノニム・リングに追加します。

シノニム・リングの中の既存の句を指定します。

言語の指定

句に対する翻訳を追加します。

新しい翻訳句を指定します。

relphrase

関係付けられた句を指定します。relphraseがtname内に存在しない場合は、relphraseが作成されます。relの表を参照してください。

ノート

relに対して指定したリレーションは、phraseからrelphraseへのリレーションと解釈されます。たとえば、上位語animalを持つdogがあるとします。

dog
  BT animal

このリレーションを追加するには、引数を次のように指定します。

begin
CTX_THES.CREATE_RELATION('thes','dog','BT','animal'); 
end;     

ノート:

CTX_THES.CREATE_RELATIONに対して指定する引数の順序は、CTX_THES.CREATE_PHRASEで指定する順序とは異なります。

リレーションVEHICLE NT CARを作成します。

ctx_thes.create_relation('thes1', 'vehicle', 'NT', 'car');

youに対する日本語の翻訳を作成します。

ctx_thes.create_relation('thes1', 'you', 'JAPANESE:', 'kimi');

14.9 CREATE_THESAURUS

CREATE_THESAURUSプロシージャは、シソーラス表に、指定した名前を持つ空のシソーラスを作成します。

構文

CTX_THES.CREATE_THESAURUS(name           IN VARCHAR2,
                          casesens       IN BOOLEAN DEFAULT FALSE);
name

作成するシソーラスの名前を指定します。シソーラスの名前は一意である必要があります。指定した名前を持つシソーラスがすでに存在している場合、CREATE_THESAURUSはエラーを戻し、シソーラスは作成されません。

casesens

作成するシソーラスで大/小文字を区別するかどうかを指定します。casesensTRUEの場合、Oracle Textは、指定されたシソーラスに入力されるすべての語句の大/小文字の区別を維持します。その結果、指定のシソーラスを使用する問合せの大/小文字が区別されます。

begin
   ctx_thes.create_thesaurus('tech_thes', FALSE);
end;

14.10 CREATE_TRANSLATION

このプロシージャを使用して、指定した言語で句に対する新しい翻訳を作成します。

構文

CTX_THES.CREATE_TRANSLATION(tname       in    varchar2,
                            phrase      in    varchar2,
                            language    in    varchar2,
                            translation in    varchar2);
tname

シソーラスの名前を30文字以内で指定します。

phrase

翻訳を追加するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。

language

翻訳の言語を10文字以内で指定します。

translation

翻訳済の語句を256文字以内で指定します。

この句の翻訳がすでに存在している場合、この新しい翻訳は、元の翻訳を削除せずに追加されます。ただし、元の翻訳と同じでない場合にかぎります。同じ翻訳を2回追加すると、エラーになります。

次のコードは、dogに対するスペイン語の翻訳をmy_thesに追加します。

begin
   ctx_thes.create_translation('my_thes', 'dog', 'SPANISH', 'PERRO');
end;

14.11 DROP_PHRASE

シソーラスから句を削除します。指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYSユーザーのみです。

構文

CTX_THES.DROP_PHRASE(tname      in varchar2, 
                     phrase     in varchar2);
tname

シソーラス名を指定します。

phrase

削除する句を指定します。phraseが明確な同形異義語の場合は、修飾子を挿入する必要があります。句がtnameに存在しない場合は、このプロシージャによって例外が発生します。

BT* / NT*リレーションは、削除された句の前後にパッチされます。たとえば、AがBT Bを持ち、BがBT Cを持つ場合、Bが削除された後、AはBT Cを持ちます。

ワードが複数の上位語を持つ場合、各上位語に対する各下位語の関係が設定されます。

BT、BTG、BTPおよびBTIは別々の階層です。したがって、AがBTG Bを持ち、BがBTI Cを持つ場合、Bが削除されると、AとCの間に暗黙的なリレーションは作成されないことに注意してください。

RTリレーションはパッチされません。たとえば、AがRT Bを持ち、BがRT Cを持つ場合、Bが削除されると、AとCの間に対応関係は作成されません。

mythesに定義された次のリレーションがあるとします。

wolf
   BT canine
canine
   BT animal

canineを削除します。

begin
ctx_thes.drop_phrase('mythes', 'canine');
end;

シソーラスの結果はパッチされ、次のようになります。

wolf
   BT animal

14.12 DROP_RELATION

2つの句の間のリレーションをシソーラスから削除します。

ノート:

CTX_THES.DROP_RELATIONは、2つの句の間のリレーションのみを削除します。このコールで、句が削除されることはありません。

指定されたシソーラスでこのプロシージャをコールできるのは、シソーラスの所有者およびCTXSYSユーザーのみです。

構文

CTX_THES.DROP_RELATION(tname     in    varchar2,
                        phrase    in    varchar2,
                        rel       in    varchar2,
                        relphrase in    varchar2 default null);
tname

シソーラス名を指定します。

phrase

対象の句を指定します。

rel

削除するリレーションを指定します。phraseからrelphraseへのリレーションになります。次のリレーションのいずれかを指定できます。

リレーション 意味 relphrase

BT*/NT*

階層のリレーションを削除します。

オプションでrelphraseを指定します。指定されない場合、句に対するこの種類のすべてのリレーションが削除されます。

RT

関連語のリレーションを削除します。

オプションでrelphraseを指定します。指定されない場合、句に対するすべてのRTリレーションが削除されます。

SYN

句をそのシノニム・リングから削除します。

(なし)

PT

優先語の指定を句から削除します。句はシノニム・リングに残ります。

(なし)

言語

翻訳を句から削除します。

オプションでrelphraseを指定します。1つの句に対して、relに指定した言語に複数の翻訳がある場合は、relphraseを指定することで、1つの翻訳のみを削除することもできます。

relphraseがNULLの場合は、その言語での、その句に対するすべての翻訳が削除されます。

relphrase

関係付けられた句を指定します。

ノート

relに対して指定したリレーションは、phraseからrelphraseへのリレーションと解釈されます。たとえば、上位語animalを持つdogがあるとします。

dog
  BT animal

このリレーションを削除するには、引数を次のように指定します。

begin
CTX_THES.DROP_RELATION('thes','dog','BT','animal'); 
end;

また、次のようにNTを使用してこのリレーションを削除することもできます。

begin
CTX_THES.DROP_RELATION('thes','animal','NT','dog'); 
end;

リレーションVEHICLE NT CARを削除します。

ctx_thes.drop_relation('thes1', 'vehicle', 'NT', 'car');

vehicleに対するすべての下位語リレーションを削除します。

ctx_thes.drop_relation('thes1', 'vehicle', 'NT');

meに対する日本語の翻訳を削除します。

ctx_thes.drop_relation('thes1', 'me', 'JAPANESE:');

meに対する、指定した日本語の翻訳を削除します。

ctx_thes.drop_relation('thes1', 'me', 'JAPANESE:', 'boku')

14.13 DROP_THESAURUS

DROP_THESAURUSプロシージャは、指定したシソーラスおよびそのシソーラス表にあるすべてのエントリを削除します。

構文

CTX_THES.DROP_THESAURUS(name IN VARCHAR2);
name

削除するシソーラスの名前を指定します。

begin
ctx_thes.drop_thesaurus('tech_thes');
end;

14.14 DROP_TRANSLATION

このプロシージャを使用して、句に対する1つ以上の翻訳を削除します。

構文

CTX_THES.DROP_TRANSLATION (tname       in    varchar2,
                           phrase      in    varchar2,
                           language    in    varchar2 default null,
                           translation in    varchar2 default null);
tname

シソーラスの名前を30文字以内で指定します。

phrase

翻訳を削除するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。

language

オプションで、翻訳の言語を10文字以内で指定します。指定しない場合は、その翻訳も指定できません。その結果、その句に対するすべての言語での翻訳が削除されます。その句に翻訳がない場合は、エラーが発生します。

translation

オプションで、削除する翻訳済の語句を256文字以内で指定します。指定した翻訳が存在しない場合は、エラーが発生します。

次のコードは、dogに対するスペイン語の翻訳を削除します。

begin
   ctx_thes.drop_translation('my_thes', 'dog', 'SPANISH', 'PERRO');
end;

dogに対するすべての言語での全翻訳を削除するには:

begin
   ctx_thes.drop_translation('my_thes', 'dog');
end;

14.15 EXPORT_THESAURUS

このプロシージャを使用して、Oracle Textのシソーラス表から、シソーラスをCLOBとしてエクスポートします。エクスポートされるシソーラスの形式は、Oracle Textシソーラス表にシソーラスをインポートするときにctxloadユーティリティが使用するシソーラス・ファイルと同じです。

関連項目:

ctxloadユーティリティの詳細は、「Oracle Textのユーティリティ」「シソーラス・ローダー(ctxload)」を参照してください。

export_thesaurusを使用してOracle Textシソーラス表からシソーラスをエクスポートできるのは、シソーラスの所有者か、sysユーザーまたはctxsysユーザーのみです。

export_thesaurusによって実行される処理をログに記録するには、export_thesaurusをコールする前にctx_output.start_logをコールする必要があります。

構文

CTX_THES.EXPORT_THESAURUS(name in varchar2, 
                          thesdump in out nocopy CLOB);
name

Oracle Textシソーラス表でエクスポートするシソーラス名を指定します。指定したシソーラスがOracle Textシソーラス表に存在しない場合は、このプロシージャで例外が発生します。

thedump

Oracle Textシソーラス表からエクスポートされるシソーラスを格納するCLOBの名前を指定します。

次の例では、mythesaurusという名前のシソーラスを、Oracle Textシソーラス表からmythesdumpというCLOBにコピーします。

declare 
 mythesdump clob; 
begin 
 ctx_thes.export_thesaurus('mythesaurus', mythesdump);
end;

14.16 HAS_RELATION

HAS_RELATIONは、実際に拡張操作を実行せずに、シソーラス・リレーションの存在の有無をテストします。その句に対するリレーションが指定したリスト内にある場合は、TRUEを戻します。

構文

CTX_THES.HAS_RELATION(phrase in varchar2, 
                      rel in varchar2, 
                      tname in varchar2 default 'DEFAULT')
  returns boolean;
phrase

句を指定します。

rel

単一のシソーラス・リレーションまたはカンマで区切られたリレーションのリストを指定します。ただし、PTは除外します。任意のリレーションを示すには、'ANY'を指定します。

tname

シソーラス名を指定します。

次の例では、DEFAULTシソーラス内の句catに上位語または上位汎用語がある場合は、TRUEを戻します。

set serveroutput on
result boolean;

begin 
 result := ctx_thes.has_relation('cat','BT,BTG');
 if (result) then dbms_output.put_line('TRUE');
  else  dbms_output.put_line('FALSE');
 end if;
end;

14.17 IMPORT_THESAURUS

このプロシージャを使用して、Oracle Textのシソーラス表にシソーラスをインポートします。import_thesaurusによって実行される処理をログに記録するには、import_thesaurusをコールする前にctx_output.start_logをコールする必要があります。

構文

CTX_THES.IMPORT_THESAURUS(name in varchar2, 
                          content in CLOB, 
                          thescase in varchar2 default 'N');
name

作成するシソーラスの名前を指定します。nameパラメータに指定したシソーラスがOracle Textシソーラス表にすでに存在する場合は、このプロシージャで例外が発生します。

content

Oracle Textシソーラス表にインポートするシソーラスの内容を指定します。インポートするシソーラスの形式は、ctxloadユーティリティで使用される形式と同じである必要があります。インポートするシソーラスの形式が正しくない場合は、このプロシージャで例外が発生します。

関連項目:

ctxloadユーティリティの詳細は、「Oracle Textのユーティリティ」「シソーラス・ローダー(ctxload)」を参照してください。

thecase

大/小文字を区別するシソーラスを作成する場合は'Y'を指定し、大/小文字を区別しないシソーラスを作成する場合は'N'を指定します。デフォルトは'N'です。

次の例では、大/小文字を区別するシソーラスをmythesaurusという名前で作成し、myclobに存在するそのシソーラスの内容をOracle Textシソーラス表にインポートします。

declare 
 myclob clob; 
begin 
 myclob := to_clob('peking SYN beijing BT capital country NT beijing tokyo');
 ctx_thes.import_thesaurus('mythesaurus', myclob, 'Y');
end;

14.18 NT

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位語を戻します。

構文1: 表結果

CTX_THES.NT(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.NT(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で下位語の文字列を戻します。

 {nt1}|{nt2}|{nt3} ...

文字列結果

catに対して次のエントリを持つ、MY_THESというシソーラスがあるとします。

cat
 NT domestic cat
 NT wild cat
 BT mammal
mammal
 BT animal
domestic cat
 NT Persian cat
 NT Siamese cat

cat に対する下位語を2レベル下まで検索するには、次の文を入力します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.nt('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the narrower expansion for CAT is: '||terms); 
end; 

このコードは、次の出力結果を戻します。

the narrower expansion for CAT is: {cat}|{domestic cat}|{Persian cat}|{Siamese cat}| {wild cat}

表結果

次のコードは、表結果を使用してcanineに対する下位語の検索を実行します。

declare
  xtab ctx_thes.exp_tab;
begin
  ctx_thes.nt(xtab, 'canine', 2, 'my_thesaurus');
  for i in 1..xtab.count loop
    dbms_output.put_line(lpad(' ', 2*xtab(i).xlevel) || 
    xtab(i).xrel || ' ' || xtab(i).xphrase);
  end loop;
end;

このコードは、次の出力結果を戻します。

PHRASE CANINE
 NT WOLF (Canis lupus)
   NT BROWN WOLF
   NT GREY WOLF
 NT DOG (Canis familiaris)
   NT PIT BULL
   NT DASCHUND
   NT CHIHUAHUA
NT HYENA (Canis mesomelas)
NT COYOTE (Canis latrans)

14.19 NTG

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位汎用語を戻します。

構文1: 表結果

CTX_THES.NTG(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.NTG(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で下位汎用語の文字列を戻します。

 {nt1}|{nt2}|{nt3} ...

catに対する下位汎用語を2レベル下まで検索するには、次の文を入力します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.ntg('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the narrower expansion for CAT is: '||terms); 
end; 

14.20 NTI

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位インスタンス語を戻します。

構文1: 表結果

CTX_THES.NTI(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.NTI(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で下位インスタンス語の文字列を戻します。

 {nt1}|{nt2}|{nt3} ...

catに対する下位インスタンス語を2レベル下まで検索するには、次の文を入力します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.nti('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the narrower expansion for CAT is: '||terms); 
end; 

14.21 NTP

このファンクションは、指定されたシソーラスに記録されているとおりに、句のすべての下位部分語を戻します。

構文1: 表結果

CTX_THES.NTP(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.NTP(phrase IN VARCHAR2, 
             lvl    IN NUMBER DEFAULT 1,
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lvl

戻す下位語のレベルを指定します。たとえば、2を指定することによって、句の下位語の下位語までをすべて取得します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で下位部分語の文字列を戻します。

 {nt1}|{nt2}|{nt3} ...

catに対する下位部分語を2レベル下まで検索するには、次の文を入力します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.ntp('CAT', 2, 'MY_THES'); 
  dbms_output.put_line('the narrower expansion for CAT is: '||terms); 
end; 

14.22 OUTPUT_STYLE

CTX_THES拡張ファンクションの戻り文字列に対する出力形式を設定します。このプロシージャは、CTX_THES拡張ファンクションに対する表結果には影響を与えません。

構文

CTX_THES.OUTPUT_STYLE (
      showlevel     IN BOOLEAN DEFAULT FALSE,
      showqualify   IN BOOLEAN DEFAULT FALSE,
      showpt        IN BOOLEAN DEFAULT FALSE,
      showid        IN BOOLEAN DEFAULT FALSE
);
showlevel

BT/NT拡張のレベルを示すには、TRUEを指定します。

showqualify

句修飾子を示すには、TRUEを指定します。

showpt

アスタリスク*を持つ優先語を示すには、TRUEを指定します。

showid

句IDを示すには、TRUEを指定します。

ノート

CTX_THES拡張ファンクションに対する戻り文字列の一般的な構文は次のとおりです。

{pt indicator:phrase (qualifier):level:phraseid}

優先語のインジケータは、句の始めにアスタリスク、次にコロンです。修飾子は、句の終わりの空白の次のカッコの中です。レベルは数字です。

次は、birdのturkeyに対する戻り文字列の例です。

*:TURKEY (BIRD):1:1234 

14.23 PT

このファンクションは、指定されたシソーラスに記録されているとおりに、句の優先語を戻します。

構文1: 表結果

CTX_THES.PT(restab IN OUT NOCOPY EXP_TAB,
            phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT')
RETURN varchar2;

構文2: 文字列結果

CTX_THES.PT(phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT')
RETURN varchar2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、優先語を次の形式の文字列として戻します。

{pt}

automobileに対して次の優先語定義を持つシソーラスMY_THESがあるとします。

AUTOMOBILE 
  PT CAR 

automobileに対する優先語を検索するには、次のコードを実行します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.pt('AUTOMOBILE','MY_THES'); 
  dbms_output.put_line('The preferred term for automobile is: '||terms); 
end; 

14.24 RT

このファンクションは、指定されたシソーラスの語句の関連語を戻します。

構文1: 表結果

CTX_THES.RT(restab IN OUT NOCOPY EXP_TAB,
            phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.RT(phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT')
RETURN varchar2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で関連語の文字列を戻します。

{rt1}|{rt2}|{rt3}| ...

dogに対して次の関連語定義を持つシソーラスMY_THESがあるとします。

DOG 
  RT WOLF 
  RT HYENA 

dogに対する関連語を検索するには、次のコードを実行します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.rt('DOG','MY_THES'); 
  dbms_output.put_line('The related terms for dog are: '||terms); 
end; 

このコードは、次の出力結果を戻します。

The related terms for dog are: {dog}|{wolf}|{hyena}

14.25 SN

このファンクションは、指定された句のスコープ・ノートを戻します。

構文

CTX_THES.SN(phrase IN VARCHAR2, 
            tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
phrase

シソーラスで検索する句を指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、スコープ・ノートを文字列として戻します。

declare 
  note varchar2(80); 
begin 
  note := ctx_thes.sn('camera','mythes'); 
  dbms_output.put_line('CAMERA'); 
  dbms_output.put_line(' SN ' || note); 
end; 
 
sample output: 
 
CAMERA 
 SN Optical cameras

14.26 SYN

このファンクションは、指定されたシソーラスに記録されているとおりに、すべての句のシノニムを戻します。

構文1: 表結果

CTX_THES.SYN(restab IN OUT NOCOPY EXP_TAB,
             phrase IN VARCHAR2, 
             tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.SYN(phrase IN VARCHAR2, 
             tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式の文字列を戻します。

 {syn1}|{syn2}|{syn3} ...

文字列結果

catに対して次のエントリを持つ、ANIMALSというシソーラスがあるとします。

CAT 
  SYN KITTY 
  SYN FELINE 
 

catに対するシノニムを検索し、結果を文字列として取得するには、次の文を入力します。

declare 
  synonyms varchar2(2000); 
begin 
  synonyms := ctx_thes.syn('CAT','ANIMALS'); 
  dbms_output.put_line('the synonym expansion for CAT is: '||synonyms); 
end; 

このコードは、次の出力結果を戻します。

the synonym expansion for CAT is: {CAT}|{KITTY}|{FELINE}

表結果

次のコードは、canineに対するシノニムを検索し、結果を表に取得します。表の内容は、標準出力で出力されます。

declare  
  xtab ctx_thes.exp_tab;  
begin 
  ctx_thes.syn(xtab, 'canine', 'my_thesaurus'); 
  for i in 1..xtab.count loop 
    dbms_output.put_line(lpad(' ', 2*xtab(i).xlevel) || 
    xtab(i).xrel || ' ' || xtab(i).xphrase); 
  end loop; 
end; 
 

このコードは、次の出力結果を戻します。

PHRASE CANINE 
 PT DOG 
SYN PUPPY 
SYN MUTT 
SYN MONGREL 

関連項目

OUTPUT_STYLE

「SYNonym (SYN)」

14.27 THES_TT

このプロシージャは、シソーラスのすべての最上位語を検索して戻します。最上位語は、下位語を持つが上位語を持たないすべての語句として定義されます。

このプロシージャは、シソーラス全体を検索し、すべての最上位語を検索します。TTは句の中で、その句の最上位語を検索します。この点で、THES_TTTTは異なります。

大規模なシソーラス

このプロシージャはシソーラス全体を検索するため、大規模なシソーラスを処理することもできます。このようなシソーラスに対して、このファンクションを頻繁にコールしないでください。かわりに、アプリケーションでこれを1回コールして結果を別の表に格納し、この格納された結果を使用してください。

構文

CTX_THES.THES_TT(restab IN OUT NOCOPY EXP_TAB,
                 tname  IN VARCHAR2 DEFAULT 'DEFAULT');
restab

結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このプロシージャはすべての最上位語を戻し、それをrestabに格納します。

14.28 TR

このファンクションは、指定された単一言語のシソーラスに対し、シソーラスに記録されているとおりに句の外国語の等価語を戻します。

ノート:

外国語の翻訳は、ISO-2788またはANSI Z39.19シソーラス規格に準拠するものではありません。TRの動作は、Oracle Text固有です。

構文1: 表結果

CTX_THES.TR(restab IN OUT NOCOPY EXP_TAB,
            phrase IN VARCHAR2, 
            lang   IN VARCHAR2 DEFAULT NULL,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT') 

構文2: 文字列結果

CTX_THES.TR(phrase IN VARCHAR2, 
            lang   IN VARCHAR2 DEFAULT NULL,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lang

外国語を指定します。phraseのすべての翻訳を示すには、ALLを指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で外国語の語句の文字列を戻します。

 {ft1}|{ft2}|{ft3} ...

catに対して次のエントリを持つシソーラスMY_THESがあるとします。

cat 
  SPANISH: gato 
  FRENCH:  chat 
  SYN lion 
    SPANISH: leon 

catに対する翻訳を検索するには、次の文を入力します。

declare 
  trans      varchar2(2000);
  span_trans varchar2(2000); 
begin 
  trans := ctx_thes.tr('CAT','ALL','MY_THES'); 
  span_trans := ctx_thes.tr('CAT','SPANISH','MY_THES') 
  dbms_output.put_line('the translations for CAT are: '||trans); 
  dbms_output.put_line('the Spanish translations for CAT are: '||span_trans); 
end; 
 

このコードは、次の出力結果を戻します。

the translations for CAT are: {CAT}|{CHAT}|{GATO} 
the Spanish translations for CAT are: {CAT}|{GATO} 

14.29 TRSYN

このファンクションは、指定された単一言語のシソーラスに対し、シソーラスに記録されているとおりに句の外国語の等価語、句のシノニムおよびシノニムの外国語の等価語を戻します。

ノート:

外国語の翻訳は、ISO-2788またはANSI Z39.19シソーラス規格に準拠するものではありません。TRSYNの動作は、Oracle Text固有です。

構文1: 表結果

CTX_THES.TRSYN(restab IN OUT NOCOPY EXP_TAB,
               phrase IN VARCHAR2, 
               lang   IN VARCHAR2 DEFAULT NULL,
               tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.TRSYN(phrase IN VARCHAR2, 
            lang   IN VARCHAR2 DEFAULT NULL,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT') 
RETURN VARCHAR2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

lang

外国語を指定します。phraseのすべての翻訳を示すには、ALLを指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で外国語の語句の文字列を戻します。

 {ft1}|{ft2}|{ft3} ...

catに対して次のエントリを持つシソーラスMY_THESがあるとします。

cat 
  SPANISH: gato 
  FRENCH:  chat 
  SYN lion 
    SPANISH: leon 

catに対する翻訳およびシノニムを検索するには、次の文を入力します。

declare 
  synonyms   varchar2(2000);
  span_syn   varchar2(2000); 
begin 
  synonyms := ctx_thes.trsyn('CAT','ALL','MY_THES'); 
  span_syn := ctx_thes.trsyn('CAT','SPANISH','MY_THES') 
  dbms_output.put_line('all synonyms for CAT are: '||synonyms); 
  dbms_output.put_line('the Spanish synonyms for CAT are: '||span_syn); 
end; 
 

このコードは、次の出力結果を戻します。

all synonyms for CAT are: {CAT}|{CHAT}|{GATO}|{LION}|{LEON} 
the Spanish synonyms for CAT are: {CAT}|{GATO}|{LION}|{LEON} 

14.30 TT

このファンクションは、指定されたシソーラスに記録されているとおりに、句の最上位語を戻します。

構文1: 表結果

CTX_THES.TT(restab IN OUT NOCOPY EXP_TAB,
            phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT');

構文2: 文字列結果

CTX_THES.TT(phrase IN VARCHAR2,
            tname  IN VARCHAR2 DEFAULT 'DEFAULT')
RETURN varchar2;
restab

オプションで、結果を格納する拡張表の名前を指定します。この表は、次のようにシステムが定義するEXP_TAB型である必要があります。

type exp_rec is record (
    xrel varchar2(12),
    xlevel number,
    xphrase varchar2(256)
);
type exp_tab is table of exp_rec index by binary_integer;

関連項目:

EXP_TABの詳細は、「Oracle Text結果表」「CTX_THES結果表およびデータ型」を参照してください。

phrase

シソーラスで検索する句を指定します。

tname

シソーラス名を指定します。指定しない場合は、システムのデフォルト・シソーラスが使用されます。

戻り値

このファンクションは、次の形式で最上位語の文字列を戻します。

{tt}

dogに対して次の上位語エントリを持つシソーラスMY_THESがあるとします。

DOG 
   BT1 CANINE 
     BT2 MAMMAL 
       BT3 VERTEBRATE 
         BT4 ANIMAL

DOGに対する最上位語を検索するには、次のコードを実行します。

declare 
  terms varchar2(2000); 
begin 
  terms := ctx_thes.tt('DOG','MY_THES'); 
  dbms_output.put_line('The top term for DOG is: '||terms); 
end; 

このコードは、次の出力結果を戻します。

The top term for dog is: {ANIMAL}

関連項目

OUTPUT_STYLE

「TOP TERM (TT)」

14.31 UPDATE_TRANSLATION

このプロシージャを使用して、既存の翻訳を更新します。

構文

CTX_THES.UPDATE_TRANSLATION(tname       in     varchar2,
                             phrase      in     varchar2,
                             language    in     varchar2,
                             translation in     varchar2,
                             new_translation in varchar2);
tname

シソーラスの名前を30文字以内で指定します。

phrase

翻訳を更新するシソーラス内の句を指定します。その句がシソーラスにすでに存在している必要があります。存在しない場合はエラーが発生します。

language

翻訳の言語を10文字以内で指定します。

translation

更新する翻訳済の語句を指定します。指定した翻訳が存在しない場合は、エラーが発生します。

phrase に対する翻訳が1つのみの場合は、NULLを指定できます。指定した言語の語句に対して複数の翻訳がある場合は、エラーが発生します。

new_translation

オプションで、翻訳済語句の新しい形式を指定します。

次のコードは、dogに対するスペイン語の翻訳を更新します。

begin
   ctx_thes.update_translation('my_thes', 'dog', 'SPANISH:', 'PERRO', 'CAN');
end;