C.1 データストア例

データストア・プリファレンスを使用して、テキストの格納方法を指定できます。いくつかのデータストア・プリファレンス型を設定する例を次に示します。

DIRECT_DATASTOREの指定

この例では、テキスト・データを格納するCLOB列がある表を作成します。その後、2行のテキスト・データを移入し、DIRECT_DATASTOREプリファレンス型を使用するシステム定義のCTXSYS.DEFAULT_DATASTOREプリファレンスを使用して表を索引付けします。

create table mytable(id number primary key, docs clob); 

insert into mytable values(111555,'this text will be indexed');
insert into mytable values(111556,'this is a default datastore example');
commit;

create index myindex on mytable(docs) 
  indextype is ctxsys.context 
  parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');

MULTI_COLUMN_DATASTOREの指定

この例では、my_multiというMULTI_COLUMN_DATASTOREデータストア・プリファレンスを、連結されて索引付けされる3つのテキスト列に作成します。

begin
ctx_ddl.create_preference('my_multi', 'MULTI_COLUMN_DATASTORE');
ctx_ddl.set_attribute('my_multi', 'columns', 'column1, column2, column3');
end;

FILE_DATASTOREの指定

この例では、FILE_DATASTOREを使用して、索引付けするファイルがオペレーティング・システムに格納されていることを指定するデータ記憶域プリファレンスを作成します。この例では、CTX_DDL.SET_ATTRIBUTEを使用して、PATH属性を/docsディレクトリに設定します。

begin
ctx_ddl.create_preference('mypref', 'FILE_DATASTORE');
ctx_ddl.set_attribute('mypref', 'PATH', '/docs'); 
end;

ノート:

Oracle Database 19c以降、Oracle TextのFILE_DATASTORE型は非推奨になりました。かわりに、DIRECTORY_DATASTOREを使用してください。

DIRECTORY_DATASTOREの指定

この例では、MYDSというDIRECTORY_DATASTOREプリファレンスを作成します。この例では、CTX_DDL.SET_ATTRIBUTEを使用して、DIRECTORY属性をOracleディレクトリ・オブジェクトであるmyhomeに設定します。

exec ctx_ddl.create_preference('MYDS','DIRECTORY_DATASTORE')
exec ctx_ddl.set_attribute('MYDS','DIRECTORY','myhome')

URL_DATASTOREの指定

この例では、my_urlというURL_DATASTOREプリファレンスを作成し、HTTP_PROXYNO_PROXYおよびTIMEOUTの各属性を設定します。TIMEOUT属性は300秒に設定されます。属性を設定しない場合は、デフォルトが使用されます。

begin
 ctx_ddl.create_preference('my_url','URL_DATASTORE');
 ctx_ddl.set_attribute('my_url','HTTP_PROXY','www-proxy.us.example.com');
 ctx_ddl.set_attribute('my_url','NO_PROXY','us.example.com');
 ctx_ddl.set_attribute('my_url','TIMEOUT','300');
end;

ノート:

Oracle Database 19c以降、Oracle TextのURL_DATASTORE型は非推奨になりました。かわりに、NETWORK_DATASTOREを使用してください。

NETWORK_DATASTOREの指定

この例では、NETWORK_PREFというNETWORK_DATASTOREプリファレンスを作成し、HTTP_PROXYNO_PROXYおよびTIMEOUTの各属性を設定します。TIMEOUT属性は300秒に設定されます。属性を設定しない場合は、デフォルトが使用されます。

begin
 ctx_ddl.create_preference('NETWORK_PREF','NETWORK_DATASTORE');
 ctx_ddl.set_attribute('NETWORK_PREF','HTTP_PROXY','www-proxy.us.example.com');
 ctx_ddl.set_attribute('NETWORK_PREF','NO_PROXY','us.example.com');
 ctx_ddl.set_attribute('NETWORK_PREF','TIMEOUT','300');
end;
/

関連トピック