Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: Oracle and RTF data

Re: Oracle and RTF data

From: Andy Hassall <andy_at_andyh.co.uk>
Date: Mon, 21 Jul 2003 21:26:52 +0100
Message-ID: <5oiohv8co8becnat2g23jp60n38hoshbpi@4ax.com>


On Mon, 21 Jul 2003 18:13:33 +0200, "S. Radic" <s.radic_at_wanadoo.nl> wrote:

>When a text object is stored with rtf characters in
>data field how do you get the text to display without the rtf characters
>displaying. Is there a function in Oracle to do this?

 Yes, Oracle Text can do this.

http://download-west.oracle.com/docs/cd/B10501_01/text.920/a96518/cdocpkg.htm#12729

 You need a context index with the INSO filter on the RTF document column in order to use it.

 e.g.

create table RTFDOCUMENT
(

  ID        NUMBER not null,
  DOC       CLOB not null,

  PLAIN_DOC CLOB
);

 [insert an RTF document with id=1 using dbms_lob.loadclobfromfile or whatever]

SQL> create index rtfdocument_tx1 on rtfdocument (doc) indextype is ctxsys.context parameters ('filter ctxsys.INSO_FILTER');

Index created

SQL> declare

  2      v_doc clob;
  3      v_plain clob;
  4      r number;
  5  begin
  6      select id, doc
  7      into   r, v_doc
  8      from   rtfdocument
  9      where  id = 1 for update;
 10  
 11      dbms_lob.createtemporary(v_plain, true);
 12      dbms_lob.append(v_plain, v_doc);
 13  
 14      ctx_doc.filter('RTFDOCUMENT_TX1', to_char(r), v_plain, plaintext =>
true);
 15
 16 update rtfdocument set plain_doc = v_plain where id = 1;  17 end;
 18 /

PL/SQL procedure successfully completed

SQL> commit;

Commit complete

 [plain_doc now contains a plain text version of the RTF document].

 It seems a bit over-enthusiastic with newlines, but it certainly works.

--
Andy Hassall (andy@andyh.co.uk) icq(5747695) (http://www.andyh.co.uk)
Space: disk usage analysis tool (http://www.andyhsoftware.co.uk/space)
Received on Mon Jul 21 2003 - 15:26:52 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US