1: PACKAGE BODY IRC_DOC_UTIL AS
2: /* $Header: iridoutl.pkb 120.0.12010000.2 2008/08/05 10:48:46 ubhat ship $ */
3: --
4: g_index_name varchar2(80);
5: g_StartConcatenator CONSTANT VARCHAR2(3) := '...';
26: if (g_index_name is null) then
27: open csr_user;
28: fetch csr_user into l_hr_username;
29: close csr_user;
30: g_index_name:=l_hr_username||'.'||IRC_DOC_UTIL.IRC_DEFAULT_INDEX;
31: end if;
32: --
33: RETURN IRC_DOC_UTIL.getContentTeaser(p_document_id
34: ,p_search_string
29: close csr_user;
30: g_index_name:=l_hr_username||'.'||IRC_DOC_UTIL.IRC_DEFAULT_INDEX;
31: end if;
32: --
33: RETURN IRC_DOC_UTIL.getContentTeaser(p_document_id
34: ,p_search_string
35: ,g_index_name );
36: END getContentTeaser;
37:
54: where document_id = p_document_id;
55: --
56: vOffsetTable CTX_DOC.HIGHLIGHT_TAB;
57: vTeaserLine VARCHAR2(1000);
58: l_procedure_name constant varchar2(80):='irc_doc_util.getcontentteaser';
59: l_rowid ROWID;
60: l_doc clob;
61: l_pos_start1 number;
62: l_pos_end1 number;
107: end if;
108: --
109: l_text:=dbms_lob.substr(l_doc,(l_pos_end1-l_pos_start1),l_pos_start1);
110: --
111: vTeaserLine:=vTeaserLine||substr(l_text,1,(vOffsetTable(1).offset-l_pos_start1))||IRC_DOC_UTIL.MARKUP_START_TAG
112: ||substr(l_text,(vOffsetTable(1).offset-l_pos_start1+1),vOffsetTable(1).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
113: --
114: -- look to see if the second tag is in the same chunk
115: --
108: --
109: l_text:=dbms_lob.substr(l_doc,(l_pos_end1-l_pos_start1),l_pos_start1);
110: --
111: vTeaserLine:=vTeaserLine||substr(l_text,1,(vOffsetTable(1).offset-l_pos_start1))||IRC_DOC_UTIL.MARKUP_START_TAG
112: ||substr(l_text,(vOffsetTable(1).offset-l_pos_start1+1),vOffsetTable(1).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
113: --
114: -- look to see if the second tag is in the same chunk
115: --
116: vCounter:=2;
120: if(vOffsetTable(vCounter).offset>=l_pos_end1) then
121: exit;
122: end if;
123: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start1+1)
124: ,vOffsetTable(vCounter).offset-vOffsetTable(vCounter-1).offset-vOffsetTable(vCounter-1).length)||IRC_DOC_UTIL.MARKUP_START_TAG
125: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start1+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
126: vCounter:=vCounter+1;
127: END LOOP;
128: end if;
121: exit;
122: end if;
123: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start1+1)
124: ,vOffsetTable(vCounter).offset-vOffsetTable(vCounter-1).offset-vOffsetTable(vCounter-1).length)||IRC_DOC_UTIL.MARKUP_START_TAG
125: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start1+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
126: vCounter:=vCounter+1;
127: END LOOP;
128: end if;
129: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start1+1))||g_EndConcatenator;
149: l_pos_end2:=vOffsetTable(vCounter).offset+75;
150: end if;
151: l_text:=dbms_lob.substr(l_doc,(l_pos_end2-l_pos_start2),l_pos_start2);
152: --
153: vTeaserLine:=vTeaserLine||substr(l_text,1,(vOffsetTable(vCounter).offset-l_pos_start2))||IRC_DOC_UTIL.MARKUP_START_TAG
154: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start2+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
155: --
156: -- look to see if there are more tags in the same chunk
157: --
150: end if;
151: l_text:=dbms_lob.substr(l_doc,(l_pos_end2-l_pos_start2),l_pos_start2);
152: --
153: vTeaserLine:=vTeaserLine||substr(l_text,1,(vOffsetTable(vCounter).offset-l_pos_start2))||IRC_DOC_UTIL.MARKUP_START_TAG
154: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start2+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
155: --
156: -- look to see if there are more tags in the same chunk
157: --
158: vCounter:=vCounter+1;
162: if(vOffsetTable(vCounter).offset>=l_pos_end2) then
163: exit;
164: end if;
165: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start2+1)
166: ,vOffsetTable(vCounter).offset-vOffsetTable(vCounter-1).offset-vOffsetTable(vCounter-1).length)||IRC_DOC_UTIL.MARKUP_START_TAG
167: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start2+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
168: vCounter:=vCounter+1;
169: END LOOP;
170: end if;
163: exit;
164: end if;
165: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start2+1)
166: ,vOffsetTable(vCounter).offset-vOffsetTable(vCounter-1).offset-vOffsetTable(vCounter-1).length)||IRC_DOC_UTIL.MARKUP_START_TAG
167: ||substr(l_text,(vOffsetTable(vCounter).offset-l_pos_start2+1),vOffsetTable(vCounter).length)||IRC_DOC_UTIL.MARKUP_END_TAG;
168: vCounter:=vCounter+1;
169: END LOOP;
170: end if;
171: vTeaserLine:=vTeaserLine||substr(l_text,(vOffsetTable(vCounter-1).offset+vOffsetTable(vCounter-1).length-l_pos_start2+1))||g_EndConcatenator;
175: --
176: RETURN REPLACE(REPLACE(vTeaserLine,fnd_global.local_chr(13),' '),fnd_global.local_chr(10),' ');
177: --
178: END getContentTeaser;
179: END IRC_DOC_UTIL;