SYN
This function returns all synonyms of a phrase as recorded in the specified thesaurus.
Syntax 1: Table Result
CTX_THES.SYN(restab IN OUT NOCOPY EXP_TAB,
phrase IN VARCHAR2,
tname IN VARCHAR2 DEFAULT 'DEFAULT');
Syntax 2: String Result
CTX_THES.SYN(phrase IN VARCHAR2,
tname IN VARCHAR2 DEFAULT 'DEFAULT')
RETURN VARCHAR2;
restab
Optionally, specify the name of the expansion table to store the results. This table must be of type EXP_TAB which the system defines as follows:
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;
See Also: “CTX_THES Result Tables and Data Types” in Oracle Text Result Tables for more information about EXP_TAB.
phrase
Specify a phrase to lookup in thesaurus.
tname
Specify the thesaurus name. If not specified, system default thesaurus is used.
Returns
This function returns a string of the form:
{syn1}|{syn2}|{syn3} ...
Example
String Result
Consider a thesaurus named ANIMALS that has an entry for cat as follows:
CAT
SYN KITTY
SYN FELINE
To look-up the synonym for cat and obtain the result as a string, enter the following statements:
declare
synonyms varchar2(2000);
begin
synonyms := ctx_thes.syn('CAT','ANIMALS');
dbms_output.put_line('the synonym expansion for CAT is: '||synonyms);
end;
This code produces the following output:
the synonym expansion for CAT is: {CAT}|{KITTY}|{FELINE}
Table Result
The following code looks up the synonyms for canine and obtains the results in a table. The contents of the table are printed to the standard output.
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;
This code produces the following output:
PHRASE CANINE
PT DOG
SYN PUPPY
SYN MUTT
SYN MONGREL