{"id":211,"date":"2008-02-08T10:39:00","date_gmt":"2008-02-08T12:39:00","guid":{"rendered":"http:\/\/www.soudba.com.br\/?p=211"},"modified":"2008-02-08T10:39:00","modified_gmt":"2008-02-08T12:39:00","slug":"busca-customizada-no-oracle-portal","status":"publish","type":"post","link":"https:\/\/www.soudba.com.br\/?p=211","title":{"rendered":"Busca customizada no Oracle PORTAL"},"content":{"rendered":"<p>Link da documentacao:<br \/>http:\/\/www.oracle.com\/technology\/products\/ias\/portal\/html\/plsqldoc\/pldoc1014\/wwsrc_api.html<\/p>\n<p>Temos uma funcao para efetuar uns testes:<\/p>\n<p><span style=\"font-weight:bold;\">create or replace procedure search_results(searchterm varchar2, score number) as<\/span><br \/><span style=\"font-weight:bold;\">  x varchar2(100);<\/span><br \/><span style=\"font-weight:bold;\">  y number;<\/span><br \/><span style=\"font-weight:bold;\">  l_results   wwsrc_api.items_result_array_type;<\/span><br \/><span style=\"font-weight:bold;\">  l_count     number;<\/span><br \/><span style=\"font-weight:bold;\">  l_scores    wwsrc_api.number_list_type;<\/span><br \/><span style=\"font-weight:bold;\">begin<\/span><br \/><span style=\"font-weight:bold;\">  x := searchterm;<\/span><br \/><span style=\"font-weight:bold;\">  y := score;<\/span><br \/><span style=\"font-weight:bold;\">  l_results := wwsrc_api.item_search(<\/span><br \/><span style=\"font-weight:bold;\">    p_mainsearch =&gt; x,<\/span><br \/><span style=\"font-weight:bold;\">    p_out_count  =&gt; l_count,<\/span><br \/><span style=\"font-weight:bold;\">    p_out_scores =&gt; l_scores<\/span><br \/><span style=\"font-weight:bold;\">  );<\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;Number of total hits: &#8216; || l_count);<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;resultado : &#8216; || l_results.count);<\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;resultado : &#8216; ||  l_results(1).url);<\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;resultado : &#8216; ||  l_results(2).url) ;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;<br \/>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">  htp.p(&#8216;<br \/>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">  for i in 1..l_results.count loop<\/span><br \/><span style=\"font-weight:bold;\">  &#8212;  if (l_scores(i) &gt; y) then<\/span><br \/><span style=\"font-weight:bold;\">      htp.p(&#8216;<b>&#8216; || i || &#8216;<\/b> &#8211; <a href=\"http:\/\/www.blogger.com\/post-edit.g?blogID=5315805860063846428&amp;postID=3464796859818707432\"><br \/><span style=\"font-weight:bold;\">        &#8216;&#8221;&gt;&#8217; || l_results(i).display_name || &#8216;<\/span><\/a>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">      htp.p(&#8216;<br \/>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">      htp.p(&#8216;score = &#8216; || l_scores(i));<\/span><br \/><span style=\"font-weight:bold;\">      htp.p(&#8216;<br \/>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\"> &#8212;   end if;<\/span><br \/><span style=\"font-weight:bold;\">  end loop;<\/span><br \/><span style=\"font-weight:bold;\">exception when others then<\/span><br \/><span style=\"font-weight:bold;\"> null;<\/span><br \/><span style=\"font-weight:bold;\">end;<\/span><\/p>\n<p>Mas ai tive que dar uma melhorada e criei a funcao:<\/p>\n<p><span style=\"font-weight:bold;\">CREATE OR REPLACE PROCEDURE PESQUISA(p_ATTRIBUTE_TEXT varchar2,<\/span><br \/><span style=\"font-weight:bold;\">                                     P_TEMA           varchar2,<\/span><br \/><span style=\"font-weight:bold;\">                                     P_ASSUNTO        varchar2,<\/span><br \/><span style=\"font-weight:bold;\">                                     P_AUTOR          varchar2,<\/span><br \/><span style=\"font-weight:bold;\">                                     P_DAT_INI        DATE,<\/span><br \/><span style=\"font-weight:bold;\">                                     P_DAT_FIM        DATE,<\/span><br \/><span style=\"font-weight:bold;\">                                     <\/span><br \/><span style=\"font-weight:bold;\">                                     P_TIPOTERMO VARCHAR2 default &#8216;ANY&#8217;)<\/span><\/p>\n<p><span style=\"font-weight:bold;\"> is<\/span><br \/><span style=\"font-weight:bold;\">  \/*<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  FALTA VALIDAR SE O ITEM FOI APROVADOR<\/span><br \/><span style=\"font-weight:bold;\">  e PUBLICADO&#8230;.<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  Limitar a pesquisa a 3 caracteres e no maximo 128 caracteres.<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  *\/<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  l_results    wwsrc_api.items_result_array_type;<\/span><br \/><span style=\"font-weight:bold;\">  l_count      number;<\/span><br \/><span style=\"font-weight:bold;\">  l_scores     wwsrc_api.number_list_type;<\/span><br \/><span style=\"font-weight:bold;\">  l_attributes wwsrc_runtime_attr_varray;<\/span><br \/><span style=\"font-weight:bold;\">  l_pggroups   wwsrc_api.number_list_type;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  v_contador  number default 1;<\/span><br \/><span style=\"font-weight:bold;\">  v_databusca date;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  v_sqldinamico varchar2(4000);<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  type tpCursor is REF CURSOR;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  cCursor tpCursor;<\/span><br \/><span style=\"font-weight:bold;\">  v_sql   varchar2(4000) default v_sqldinamico;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  &#8212; Mostrar na tela retorno do cursor.<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  v_tema         portal.WWSBR_ALL_CATEGORIES.display_name%TYPE;<\/span><br \/><span style=\"font-weight:bold;\">  v_temaanterior portal.WWSBR_ALL_CATEGORIES.display_name%TYPE;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  v_assunto          portal.WWSBR_ALL_CATEGORIES.display_name%TYPE;<\/span><br \/><span style=\"font-weight:bold;\">  v_titulo           portal.WWSBR_ALL_CATEGORIES.display_name%type;<\/span><br \/><span style=\"font-weight:bold;\">  v_DATADEPUBLICACAO date;<\/span><br \/><span style=\"font-weight:bold;\">  v_urlpage          varchar2(4000);<\/span><br \/><span style=\"font-weight:bold;\">  v_descricao        varchar2(4000);<\/span><br \/><span style=\"font-weight:bold;\">  v_tipotermo        varchar2(4000);<\/span><br \/><span style=\"font-weight:bold;\">  v_nome             varchar2(4000);<\/span><\/p>\n<p><span style=\"font-weight:bold;\">  &#8212; solucao temporaria <\/span><br \/><span style=\"font-weight:bold;\">  v_pgname portal.WWSBR_ALL_CONTENT_AREAS.name%TYPE;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">begin<\/span><br \/><span style=\"font-weight:bold;\">  &#8212;<\/span><br \/><span style=\"font-weight:bold;\">  &#8212; Verificar se foram designados parametros.<\/span><br \/><span style=\"font-weight:bold;\">  &#8212;<\/span><br \/><span style=\"font-weight:bold;\">  if length(NVL(p_ATTRIBUTE_TEXT, &#8221;)  ) <br \/><span style=\"font-weight:bold;\">     length(p_ATTRIBUTE_TEXT ) &gt;= 128 then<\/span><br \/><span style=\"font-weight:bold;\">    htp.print(&#8216;Refa\u00e7a a pesquisa. Informe acima de 3 caracteres e no maximo 128 caracteres para a busca.&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">  else<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Se foram passados parametros<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; entao estaremos<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; com os parametros para informar na busca.<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; <\/span><br \/><span style=\"font-weight:bold;\">    if p_tipotermo = &#8216;ANY&#8217; then<\/span><br \/><span style=\"font-weight:bold;\">      v_tipotermo := portal.wwsrc_api.CONTAINS_ANY;<\/span><br \/><span style=\"font-weight:bold;\">    elsif p_tipotermo = &#8216;ALL&#8217; then<\/span><br \/><span style=\"font-weight:bold;\">      v_tipotermo := portal.wwsrc_api.CONTAINS_ALL;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    elsif p_tipotermo = &#8216;TO&#8217; then<\/span><br \/><span style=\"font-weight:bold;\">      v_tipotermo := portal.wwsrc_api.EQUALS_TO;<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Build up attribute object with author criteria. <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Quais os page groups para a busca? OU quais os portais&#8230;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:b\nold;\">    l_pggroups(1) := 813; &#8211;813&#8211; Portal Publico<\/span><br \/><span style=\"font-weight:bold;\">   &#8212; l_pggroups(2) := 833; &#8212; Portal Publico<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Para pegar o nome do portal DEFAULT <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; vou pesquisar o nome para passar como parametro fixo<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Visto que a consulta somente retorna os itens da pagina LIB<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; chamado aberto com a oracle para resolver.<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; <\/span><br \/><span style=\"font-weight:bold;\">    select name<\/span><br \/><span style=\"font-weight:bold;\">      into v_pgname<\/span><br \/><span style=\"font-weight:bold;\">      from portal.WWSBR_ALL_CONTENT_AREAS<\/span><br \/><span style=\"font-weight:bold;\">     where portal.WWSBR_ALL_CONTENT_AREAS.id = 813;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    if p_ATTRIBUTE_TEXT is not null then<\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_KEYWORDS,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; p_ATTRIBUTE_TEXT,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_TITLE,  <\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; p_ATTRIBUTE_TEXT,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_URL,  <\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; p_ATTRIBUTE_TEXT,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Primeiro tentar converter o texto de procura para a data inicial<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    if P_DAT_INI is not null then<\/span><\/p>\n<p><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(p_ATTRIBUTE_TEXT, &#8216;DD-MON-RRRR&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(p_ATTRIBUTE_TEXT, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(p_ATTRIBUTE_TEXT, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(p_ATTRIBUTE_TEXT, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(p_ATTRIBUTE_TEXT, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Tentar converter o formato da data INICIAL<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">    if P_DAT_INI is not null then<\/span><\/p>\n<p><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_INI, &#8216;DD-MON-RRRR&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_INI, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_INI, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_INI, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_INI, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weigh\nt:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    if v_databusca is not null then<\/span><br \/><span style=\"font-weight:bold;\">      dbms_session.set_nls(&#8216;NLS_DATE_FORMAT&#8217;, &#8221;&#8217;DD-MON-RRRR&#8221;&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_PUBLISHDATE, &#8211;portal.wwsbr_api.<\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; v_databusca,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; portal.wwsrc_api.GREATER_THAN, <\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Colocar a validacao da data final<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    if P_DAT_FIM is not null then<\/span><\/p>\n<p><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_FIM, &#8216;DD-MON-RRRR&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_FIM, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_FIM, &#8216;DDMMYYYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_FIM, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      begin<\/span><br \/><span style=\"font-weight:bold;\">        v_databusca := to_char(P_DAT_FIM, &#8216;DDMMYY&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      exception<\/span><br \/><span style=\"font-weight:bold;\">        when others then<\/span><br \/><span style=\"font-weight:bold;\">          v_databusca := null;<\/span><br \/><span style=\"font-weight:bold;\">      end;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    if P_DAT_FIM is not null then<\/span><br \/><span style=\"font-weight:bold;\">      v_databusca := to_char(P_DAT_INI, &#8216;DD-MON-RRRR&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_PUBLISHDATE, &#8211;portal.wwsbr_api.<\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; v_databusca,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; portal.wwsrc_api.LESS_THAN,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Filtrar pelo AUTOR<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    if P_AUTOR is not null then<\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_AUTHOR, &#8211;portal.wwsbr_api.<\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; P_AUTOR,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Filtrar pelo TEMA<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    if P_TEMA is not null then<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_CATEGORY, <\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; P_TEMA,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Filtrar pelo ASSUNTO<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">    if P_ASSUNTO is not null then<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      portal.wwsrc_api.specify_attributes(p_id       =&gt; portal.wwsbr_api.ATTRIBUTE_CATEGORY, <\/span><br \/><span style=\"font-weight:bold;\">                                          p_value    =&gt; P_ASSUNTO,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_operator =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                          p_in_out_attr_varray =&gt; l_attributes);<\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    &#8212; The search needs to be performed by a User in the Portal<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; The  is the Portal UI password for the portal user.<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; portal.wwctx_api.set_context(&#8216;portal&#8217;, &#8216;senha&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Perform the search. <\/span><br \/><span style=\"font-weight:bold;\">    portal.wwctx_api.set_context(&#8216;andre.rocha&#8217;, &#8216;senha&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    begin<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      l_results := portal.wwsrc_api.item_search(p_page_groups     =&gt; l_pggroups, &#8211;p_mainsearch   =&gt; &#8216;portalpublicodl&#8217;,<\/span><br \/><span style=\"font-weight:bold;\">                                                p_attributes      =&gt; l_attributes,<\/span><br \/><sp\nan style=\"font-weight:bold;\">                                                p_attributesmatch =&gt; v_tipotermo,<\/span><br \/><span style=\"font-weight:bold;\">                                                p_out_count       =&gt; l_count,<\/span><br \/><span style=\"font-weight:bold;\">                                                p_out_scores      =&gt; l_scores);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    exception<\/span><br \/><span style=\"font-weight:bold;\">      when others then<\/span><br \/><span style=\"font-weight:bold;\">        htp.print(&#8216;Erro na pesquisa. Favor contactar o analista respons\u00e1vel. Erro: &#8216; ||  sqlerrm);<\/span><br \/><span style=\"font-weight:bold;\">    end;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; dbms_output.put_line(&#8216;Number of results: &#8216; || l_count);<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    v_sqldinamico := null;<\/span><br \/><span style=\"font-weight:bold;\">    for i in 1 .. l_results.count loop<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; Preencher dados do ID do item para que eu possa retornar a pagina.<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; Mostrar os IDs <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; htp.print(&#8216; FOLDER_ID &#8216; || l_results(i).FOLDER_ID);<\/span><br \/><span style=\"font-weight:bold;\">      &#8212; htp.print(&#8216; CAID &#8216; || l_results(i).CAID);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      if v_sqldinamico is null then<\/span><br \/><span style=\"font-weight:bold;\">        v_sqldinamico := &#8216;(&#8216; || l_results(i).id;<\/span><br \/><span style=\"font-weight:bold;\">        if i = l_results.count then<\/span><br \/><span style=\"font-weight:bold;\">          v_sqldinamico := v_sqldinamico || &#8216;) &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">        end if;<\/span><br \/><span style=\"font-weight:bold;\">      else<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">        if i = l_results.count then<\/span><br \/><span style=\"font-weight:bold;\">          v_sqldinamico := v_sqldinamico || &#8216;,&#8217; || l_results(i).id || &#8216;) &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">        else<\/span><br \/><span style=\"font-weight:bold;\">          v_sqldinamico := v_sqldinamico || &#8216;,&#8217; || l_results(i).id;<\/span><br \/><span style=\"font-weight:bold;\">        end if;<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">      end if;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end loop;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    &#8212; Mostrar os ids de pesquisa<\/span><br \/><span style=\"font-weight:bold;\">    &#8212;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    &#8211;htp.print(v_sqldinamico);<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">    if nvl(l_results.count, 0) &gt; 0 then<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; agora filtrar tb a categoria com os itens e paginas. <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; Montar esta consulta dinamica para conseguir<\/span><br \/><span style=\"font-weight:bold;\">      &#8212; listar ASSUNTO x TEMA x resultados.<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := &#8216;   &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; select rownum linha, substr(categoria.descricao, &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;1, &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;             decode(instr(categoria.descricao, &#8216; || &#8221;&#8221; || &#8216;-&#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; ), &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                   0,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                   100,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                 instr(categoria.descricao, &#8216; || &#8221;&#8221; || &#8216;-&#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;) &#8211; 2)) tema,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   categoria.descricao assunto,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   a.display_name titulo,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   a.name nome,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   case&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basefile&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;     a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;     when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;baseimage&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;     a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;baseimagemap&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;     a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    when a.ITEMTYPE = &#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;baseloginlogout&#8217; || &#8221;&#8221; || &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basemaplink&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basepagelink&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basepagepath&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;baseplsql&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;baseportallink&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;baseportletinstance&#8217; || &#8221;&#8221; || &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basesearch&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v<br \/>\n_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basesmarttext&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      &#8212;      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">      &#8212;               &#8216;    bhtrans_publico.FRETORNAURLPAGE(substr(a.text, 1, 350), pgs.id, pg.name)&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;    bhtrans_publico.FRETORNAURL(substr(a.text, 1, 350), FRETORNAPGIDPUBLICA(a.id,&#8217; ||<\/span><br \/><span style=\"font-weight:bold;\">               l_pggroups(1) || &#8216;),  &#8216; || &#8221;&#8221; || v_pgname || &#8221;&#8221; || &#8216;) &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basetab&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    a.url&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;basetext&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;    bhtrans_publico.FRETORNAURL(substr(a.text, 1, 350), FRETORNAPGIDPUBLICA(a.id,&#8217; ||<\/span><br \/><span style=\"font-weight:bold;\">               l_pggroups(1) || &#8216;),  &#8216; || &#8221;&#8221; || v_pgname || &#8221;&#8221; || &#8216;) &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      &#8212;               &#8216;  bhtrans_publico.FRETORNAURLPAGE(substr(a.text, 1, 350), pgs.id, pg.name)&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; when a.ITEMTYPE = &#8216; || &#8221;&#8221; || &#8216;baseurl&#8217; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; then&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  a.url &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; end   DESCRICAO,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212;<\/span><br \/><span style=\"font-weight:bold;\">      &#8212; TEMPORARIA<\/span><br \/><span style=\"font-weight:bold;\">      &#8212; Solucao para retornar a pagina do portal PUBLICO<\/span><br \/><span style=\"font-weight:bold;\">      &#8212; e nao a do portal LIB<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">      &#8212;          &#8216; a.publish_date DATADEPUBLICACAO, bhtrans_publico.FRETORNAURLPAGE(substr(a.text, 1, 100), pgs.id, pg.name) URLPAGE &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; a.publish_date DATADEPUBLICACAO, bhtrans_publico.FRETORNAURL(substr(a.text, 1, 100), FRETORNAPGIDPUBLICA(a.id,&#8217; ||<\/span><br \/><span style=\"font-weight:bold;\">               l_pggroups(1) || &#8216;),  &#8216; || &#8221;&#8221; || v_pgname || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;) URLPAGE &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; from portal.wwsbr_all_items a,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    portal.WWSBR_ALL_CONTENT_AREAS pg,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    portal.wwsbr_user_folders pgs,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;    (select c.id,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;          substr(replace(SYS_CONNECT_BY_PATH(&#8216; || &#8221;&#8221; || &#8216; &#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; || c.display_name,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                                             &#8216; || &#8221;&#8221; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;; -&#8216; || &#8221;&#8221; || &#8216;),&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                         &#8216; || &#8221;&#8221; || &#8216;;&#8217; || &#8221;&#8221; || &#8216;,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;                         null),&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;               4) as descricao  &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   from portal.WWSBR_ALL_CATEGORIES c &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216;  where c.language = Portal.wwctx_api.get_nls_language()&#8217; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; and c.id in &#8216; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; (select distinct x.category_id<\/span><br \/><span style=\"font-weight:bold;\">                             from portal.wwsbr_all_items x<\/span><br \/><span style=\"font-weight:bold;\">                            where x.id in &#8216; || v_sqldinamico || &#8216;)&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;   start with c.PARENTID = 0&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  connect by prior c.ID = c.PARENTID&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;        and prior c.CAID = c.CAID&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;        and prior c.language = c.language&#8217; ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; ) categoria,&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; portal.WWSBR_ALL_CATEGORIES d &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; where a.category_id = categoria.id&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql ||<\/span><br \/><span style=\"font-weight:bold;\">               &#8216; and a.language = Portal.wwctx_api.get_nls_language()&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; and a.caid = pg.id&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.caid = pgs.caid&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and pgs.caid = pg.id&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.FOLDER_ID = pgs.id&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.active = 1&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.is_current_version = 1&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.category_id = d.id&#8217;;<\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216;  and a.id in &#8216; || v_sqldinamico;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_sql := v_sql || &#8216; order by 2, 3 &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8211;htp.print(&#8216;CONSULTA: &#8216; || v_SQL);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      open cCursor for v_SQL;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      &#8212; Mostrar o SQL pronto <\/span><br \/><span style=\"font-weight:bold;\">        htp.print(&#8216;CONSULTA: &#8216; || v_SQL);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      v_temaanterior := &#8216; &#8216;;<\/span><br \/><span style=\"font-weight:bold;\">      loop<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">        fetch cCursor<\/span><br \/><span style=\"font-weight:bold;\">          into v_contador, v_tema, v_assunto, v_titulo,v_nome, v_descricao, v_DATADEPUBLICACAO, v_urlpage;<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">        exit when cCursor%notfound;<\/span><br \/><span style=\"font-weight:bold;\">        if v_urlpage is null then<\/span><br \/><span style=\"font\n-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">          if v_temaanterior  v_tema then<\/span><br \/><span style=\"font-weight:bold;\">            v_temaanterior := v_tema;<\/span><br \/><span style=\"font-weight:bold;\">            htp.print(&#8216;<\/p>\n<table border=\"0\" width=\"100%\">&#8216;);<br \/><span style=\"font-weight:bold;\">            htp.print(&#8216;  <\/span><\/p>\n<tbody>\n<tr>&#8216;);<br \/><span style=\"font-weight:bold;\">            htp.print(&#8216;    <\/span><\/p>\n<td>CATEGORIA: &#8216; || v_tema || &#8216;<\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">            htp.print(&#8216;  <\/span><\/tr>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">            htp.print(&#8216;<\/span><\/tbody>\n<\/table>\n<p>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">          end if;<\/span><br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;<\/p>\n<table border=\"0\" width=\"100%\">&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/p>\n<tbody>\n<tr>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td width=\"3%\">&#8216; || v_contador || &#8216; &#8211;<\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td width=\"94%\">&#8216; || nvl(v_titulo,v_nome) || &#8216;<\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\"> <\/span><br \/><span style=\"font-weight:bold;\">          &#8212; v_returnurl:= &#8216;<a href=\"http:\/\/www.blogger.com\/%27%20%7C%7C%20str_html%28p_line%29%20%7C%7C%20%27\">&#8216; || v_returnurl || &#8216;<\/a>&#8216;;<\/span><br \/><span style=\"font-weight:bold;\"> <\/span><br \/><span style=\"font-weight:bold;\">          <\/span><br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td width=\"3%\"><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/tr>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/p>\n<tr>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\"> <\/span><br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td>\n<p>&#8216; || FRETORNANEGRITO(v_descricao, trim(p_ATTRIBUTE_TEXT))|| &#8216;<\/p>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/tr>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/p>\n<tr>&#8216;);<br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td>Publicado em &#8216; ||<br \/><span style=\"font-weight:bold;\">                    to_char(v_DATADEPUBLICACAO, &#8216;DD\/MM\/YYYY&#8217;) || &#8216; <\/span><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;    <\/span><\/p>\n<td><\/td>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;  <\/span><\/tr>\n<p>&#8216;);<br \/><span style=\"font-weight:bold;\">          htp.print(&#8216;<\/span><\/tbody>\n<\/table>\n<p>&#8216;);<\/span><br \/><span style=\"font-weight:bold;\">        <\/span><br \/><span style=\"font-weight:bold;\">        end if;<\/span><br \/><span style=\"font-weight:bold;\">        &#8212;   DBMS_OUTPUT.PUT_LINE(trim(v_tema));<\/span><br \/><span style=\"font-weight:bold;\">      <\/span><br \/><span style=\"font-weight:bold;\">      end loop;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">      close cCursor;<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    else<\/span><br \/><span style=\"font-weight:bold;\">      htp.print(&#8216;N\u00e3o foram encontrados registros em sua busca, favor especifique novos valores.&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">    <\/span><br \/><span style=\"font-weight:bold;\">    end if;<\/span><br \/><span style=\"font-weight:bold;\">  end if;<\/span><\/p>\n<p><span style=\"font-weight:bold;\">exception<\/span><br \/><span style=\"font-weight:bold;\">  when others then<\/span><br \/><span style=\"font-weight:bold;\">    htp.print(&#8216;Error in Search Execution!&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">    dbms_output.put_line(&#8216;Error in Search Execution!&#8217;);<\/span><br \/><span style=\"font-weight:bold;\">    dbms_output.put_line(sqlerrm);<\/span><br \/><span style=\"font-weight:bold;\">  <\/span><br \/><span style=\"font-weight:bold;\">end;<\/span><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Link da documentacao:http:\/\/www.oracle.com\/technology\/products\/ias\/portal\/html\/plsqldoc\/pldoc1014\/wwsrc_api.html Temos uma funcao para efetuar uns testes: create or replace procedure search_results(searchterm varchar2, score number) as x varchar2(100); y number; l_results wwsrc_api.items_result_array_type; l_count number; l_scores wwsrc_api.number_list_type;begin x := searchterm; y := score; l_results := wwsrc_api.item_search( p_mainsearch =&gt; &hellip; <a href=\"https:\/\/www.soudba.com.br\/?p=211\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[339],"tags":[],"class_list":["post-211","post","type-post","status-publish","format-standard","hentry","category-wwsrc_api-item_search"],"_links":{"self":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=211"}],"version-history":[{"count":0,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=\/wp\/v2\/posts\/211\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.soudba.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}