Utilizando ARRAY no PLSQL

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

Amigos estou com um problema, seguinte. tenho uma consulta no PL/SQL que me retorna uma lista de candidatos inscritos. ótimo, nesta lista tenho um checkbox no final de cada inscrito, o meu problema é, quando eu setar os checkbox e não necessáriamente todos ele vai ter que gravar no banco para aquele inscrito foi selecionado.

E agora como faço isso, utilizando array ? e se sim como fazer-lo pois nunca trabalhei com array no PL.

obrigado !
bertosro
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 18 Ago 2006 11:13 am
Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com

checkbox no PL/sql??? NOu esta usanado o forms?? não entendi.
bertosro
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 18 Ago 2006 11:13 am
Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com

Selecionar tudo

DECLARE
   TYPE vetor IS TABLE OF VARCHAR (65)
      INDEX BY BINARY_INTEGER;

   vt   vetor;
   t    VARCHAR (10);

   FUNCTION teste (sc1 VARCHAR2)
      RETURN CHAR
   IS
      n   NUMBER;
   BEGIN
      DBMS_OUTPUT.put_line (sc1);
      RETURN n;    -- Retorna string binária representando a string fornecida
   END;
BEGIN
   vt (0) := 'parametro';
   DBMS_OUTPUT.put_line (vt (0));
   t := teste ('parametro');
END;
BERTOSRO :-o
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

É que utilizamos no PL/SQL tags de formulários

Selecionar tudo

htp.p('<input name..>');
não sei se você conhece, é pouco difuncido! é FORM dentro do PL.
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

Segue um exemplo da package que estou com problema

Selecionar tudo

create or replace package body mpclassificarcandidatopg as

/*procedure:inicio
  descricao:procedure que inicializa a estrutura utilizada na tela (TabPanels)*/ 
procedure inicio as
  begin
  mpSpry.pccabtela(p_titulovc =>  'Classificação do Candidato Inscrito',
                   p_subtitulovc => 'Classificar', 
                   p_scriptTela => 'mpclassificarcandidatopg.pcscript',
                   p_linkajuda => 'siavi:perfil_uorg',
                   p_spryTabbed => true,                       
                   p_spryTextfield => true,  -- usa Spry Textfield validation
                   p_spryselect => true,
                   p_codsistema => 2,
                   p_spryTextArea => true,
                   p_calendarControl => true,
                   p_spryRadio => true,
                   p_filterListJs => true,
                   p_spryCheckbox => true);
--                   p_onload => 'document.getElementById(''TabbedPanels1'').style.visibility =''hidden'';');-- para ocultar o TabbedPanel
  
  mpSpry.pcTabPanels(
    mpSpry.array_clob('Classificar'),
    mpSpry.array_clob(fcPanelIncluirInsc));                           
  htp.p('<br>');

  mpSpry.pcRodTela;
exception
  when others then
     mpspry.pcErro;   
end inicio;

/*procedure:pcscript
  descricao:procedure com as funções em javascript*/ 
procedure pcScript
is
begin

 htp.p('
  function classificar(progcodnr,cursoanonr,nivelcursocodnr,curscodnr)
  {
    reqAjaxPostSincrono("mpclassificarcandidatopg.fcPanelIncluirInsc","p_progcodnr="+progcodnr+"&p_cursoanonr="+cursoanonr+"&p_nivelcursocodnr="+nivelcursocodnr+"&p_curscodnr="+curscodnr,"div_classifica");
  }
  ');



  htp.p('
  function alterarInsc(progcodnr,curscodnr,cursoanonr,insccpfvc)
  {
    reqAjaxPostSincrono("mpclassificarcandidatopg.pcTelaAlterarInsc","p_progcodnr="+progcodnr+"&p_curscodnr="+curscodnr+"&p_cursoanonr="+cursoanonr+"&p_insccpfvc="+insccpfvc,"div_alterainsc");
  }
  ');

  htp.p('
  function excluirInsc(progcodnr,curscodnr,cursoanonr,insccpfvc)
  {
    confirmaexclusao = false;
    confirmaexclusao = confirm("Confirma exclusão do candidato?");
                       
    if (confirmaexclusao == true)
       {
         document.location = "mpclassificarcandidatopg.pcExcluirInsc?p_progcodnr="+progcodnr+"&p_curscodnr="+curscodnr+"&p_cursoanonr="+cursoanonr+"&p_insccpfvc="+insccpfvc;
       }
  }
  ');
  htp.p('     
    function ajaxAno(progcodnr){  
      // atualiza ano do curso
      url = ''mpclassificarcandidatopg.pcAjaxAno'';
      param = ''p_progcodnr='' + progcodnr;        
      div = ''div_ajaxano'';
      reqAjaxPost(url, param, div);
   //limpando conteu da div ''div_ajaxnivel''
      document.getElementById(''div_ajaxnivel'').innerHTML=''&nbsp;'';
    }  
    ');

  htp.p('     
    function ajaxNivel(progcodnr,cursoanonr){  
      // atualiza nivel do curso
      url = ''mpclassificarcandidatopg.pcAjaxNivel'';
      param = ''p_progcodnr='' + progcodnr +''&p_cursoanonr=''+ cursoanonr;        
      div = ''div_ajaxnivel'';
      reqAjaxPost(url, param, div);
      
    }  
    ');
  htp.p('     
    function ajaxCurso(progcodnr,cursoanonr,nivelcursocodnr){  
      // atualiza nivel do curso
      url = ''mpclassificarcandidatopg.pcAjaxCurso'';
      param = ''p_progcodnr='' + progcodnr +''&p_cursoanonr=''+ cursoanonr+''&p_nivelcursocodnr=''+ nivelcursocodnr;        
      div = ''div_ajaxcurso'';
      reqAjaxPost(url, param, div);
      
    }  
    ');
  /*htp.p('     
    function ajaxArea(progcodnr,cursoanonr,nivelcursocodnr,curscodnr){  
      // atualiza área de concentração
      url = ''mpclassificarcandidatopg.pcAjaxArea'';
      param = ''p_progcodnr='' + progcodnr +''&p_cursoanonr=''+ cursoanonr+''&p_nivelcursocodnr=''+ nivelcursocodnr+''&p_curscodnr=''+ curscodnr;        
      div = ''div_ajaxarea'';
      reqAjaxPost(url, param, div);
      
    }  
    ');
  htp.p('     
    function ajaxLinha(progcodnr,cursoanonr,nivelcursocodnr,curscodnr,areacodnr){  
      // atualiza linha de pesquisa
      url = ''mpclassificarcandidatopg.pcAjaxLinha'';
      param = ''p_progcodnr='' + progcodnr +''&p_cursoanonr=''+ cursoanonr+''&p_nivelcursocodnr=''+ nivelcursocodnr+''&p_curscodnr=''+ curscodnr+''&p_areacodnr=''+ areacodnr;        
      div = ''div_ajaxlinha'';
      reqAjaxPost(url, param, div);
      
    }  
    ');*/
  htp.p('
    function fcvinculo(inscprofvincempvc) {
//    debugger;
      if (inscprofvincempvc != "2")
      {
      
        document.filtro.p_inscprofempvc.disabled=false;
        document.filtro.p_inscprofendvc.disabled=false;
        document.filtro.p_inscprofbairrovc.disabled=false;
        document.filtro.p_inscprofcidadevc.disabled=false;
        document.filtro.p_inscprofufvc.disabled=false;
        document.filtro.p_inscprofcepvc.disabled=false;
      }
      else
      {
        document.filtro.p_inscprofempvc.disabled=true;
        document.getElementById("p_inscprofendvc").disabled=true;
        document.filtro.p_inscprofbairrovc.disabled=true;
        document.filtro.p_inscprofcidadevc.disabled=true;
        document.filtro.p_inscprofufvc.disabled=true;
        document.filtro.p_inscprofcepvc.disabled=true;
      }
    }
  ');
    
  htp.p('
    function fcoutrosmeios(inscprogoutmeiosvc) {
      if (inscprogoutmeiosvc != "4")
        document.filtro.p_inscprogoutmeiosvc.disabled=true;
      else
        document.filtro.p_inscprogoutmeiosvc.disabled=false;
    }
  ');
end;


/*procedure:fcPanelIncluirInsc
  descricao:Aba do TabPanel com a finalidade de incluir a inscrição do candidato*/ 
function fcPanelIncluirInsc return clob  
is
  v_texto clob;  -- texto de retorno
 
  v_progcodnr            inscricaopg.progcodnr%type;
  v_cursoanonr           inscricaopg.cursoanonr%type;
  v_nivelcursocodnr      nivelcursopg.nivelcursocodnr%type;
  v_curscodnr            inscricaopg.curscodnr%type;
  
begin


v_texto :='  
   <form name="filtro" action="mpclassificarcandidatopg.pcTelacandidatoclassificado" method="get">
   <table border="1" align="center" class="tabela">
    <tr>
        <th colspan="5"><div align="center">Curso</div></th>
    </tr>';
        
  -- Campo programa
v_texto := v_texto ||'
     <tr>
         <td>Programa</td>
         <td colspan="4" align="left">';
    v_texto := v_texto || mpSpry.fcSelectQuery(
      p_nome => 'p_progcodnr',
      p_query => 'select distinct prog.progsiglavc,prog.progcodnr from turmapg turma,programapg prog 
      where to_char(sysdate,''YYYY/MM/DD'') between to_char(turma.turmapginsciniciodt,''YYYY/MM/DD'') 
      and to_char(turma.turmapginscfinaldt,''YYYY/MM/DD'')
      and turma.progcodnr=prog.progcodnr 
      order by prog.progsiglavc',
      p_descricao_inicial => 'Selecione',
      p_tamanho => 250,
      p_obrigatorio => true,
      p_onchange => 'if(this.selectedIndex!=0)
          ajaxAno(this.value);
      else
          document.getElementById(''div_ajaxano'').innerHTML=''&nbsp;'';
          document.getElementById(''div_ajaxnivel'').innerHTML=''&nbsp;'';
          document.getElementById(''div_ajaxcurso'').innerHTML=''&nbsp;'';'); 


v_texto := v_texto ||'
  <tr>
      <td>Ano</td>
      <td>
        <div id="div_ajaxano"></div>';

v_texto := v_texto ||'
  <tr>
      <td>N&iacute;vel do Curso</td>
      <td>
        <div id="div_ajaxnivel"></div>';

v_texto := v_texto ||'
  <tr>
      <td>Curso</td>
      <td>
        <div id="div_ajaxcurso"></div></tr></table>';





v_texto := v_texto ||'  

   <table border="1" align="center" class="tabela" width="80%">';

v_texto := v_texto ||'
  </div></td></tr></table><br><center><div align="center" id="div_classifica"></div>';




v_texto := v_texto ||
  mpspry.fcButtonSubmit(p_descricao => 'Continuar');
v_texto := v_texto ||'
  </center></form>';                                              
                                      
/* v_botaoalt := mpspry.fcButton(p_descricao => 'Alterar',
                               p_tipoUrl => 1,
                               p_url => 'classificar('||v_progcodnr||','||v_cursoanonr||','||v_nivelcursocodnr||','||v_curscodnr||');');*/


 
         
  return v_texto;
exception
  when others then
     mpspry.pcErro;  
end;




procedure pcTelacandidatoclassificado 
--return clob  


(
  p_progcodnr            alunocursopg.progcodnr%type,
  p_cursoanonr           alunocursopg.cursoanonr%type,
  p_nivelcursocodnr      alunocursopg.nivelcursocodnr%type,
  p_curscodnr            alunocursopg.curscodnr%type
  )
  is
  v_texto clob;                               -- texto de retorno
  type type_cursor       is ref cursor;       -- tipo cursor
  vcur_candidatoclassificado  type_cursor;      -- cursor para obter dados das áreas de concentração
  v_botaoalt             varchar2(5000);      -- código html do botão a ser apresentado junto a área de concentração
  v_botaoexc             varchar2(5000);      -- código html do botão a ser apresentado junto a área de concentração
  v_progcodnr            alunocursopg.progcodnr%type;
  v_cursoanonr           alunocursopg.cursoanonr%type;
  v_nivelcursocodnr      alunocursopg.nivelcursocodnr%type;
  v_curscodnr            alunocursopg.curscodnr%type;
  
  v_inscnomevc           inscricaopg.inscnomevc%type;
  v_prognomevc           programapg.prognomevc%type;
  v_cursnomevc           curso.cursnomevc%type;
  
  contador               number;
 
begin



mpspry.pcCabTela(p_titulovc => 'Lista de Candidatos Inscritos',
                 p_codsistema => 2,
                 p_scriptTela => 'mpclassificarcandidatopg.pcscript');
                 

  open vcur_candidatoclassificado for
  
  SELECT insc.inscnomevc, prog.progsiglavc, curso.cursnomevc, insc.cursoanonr
  FROM   inscricaopg insc, programapg prog, curso
  WHERE  insc.progcodnr=p_progcodnr
  AND    insc.cursoanonr=p_cursoanonr
  AND    insc.nivelcursocodnr=p_nivelcursocodnr
  AND    insc.curscodnr=p_curscodnr
  AND    insc.inscclassificadonr=0
  AND    prog.progcodnr=insc.progcodnr
  AND    curso.curscodnr=insc.curscodnr;




  htp.p('<form name="teste" action="mpclassificarcandidatopg.pcTelacandidatoclassificado" method="get">
         <input type="hidden" name="p_progcodnr" value="'||p_progcodnr||'">
             <input type="hidden" name="p_cursoanonr" value="'||p_cursoanonr||'">
             <input type="hidden" name="p_nivelcursocodnr" value="'||p_nivelcursocodnr||'">
             <input type="hidden" name="p_curscodnr" value="'||p_curscodnr||'">
         <table border="1" align="center" class="tabela">
             <tr>
               <th width="380"><div align="center">Nome do candidato</div></th>
               <th><div align="center">Programa</div></th>
               <th><div align="center">Curso</div></th>
               <th><div align="center">Ano</div></th>
               <th><div align="center">Classificar</div></th>
             </tr>');
             
             


             
  loop
  fetch vcur_candidatoclassificado into v_inscnomevc, v_prognomevc, v_cursnomevc, v_cursoanonr;
  exit when vcur_candidatoclassificado%notfound;
  
    
    htp.p('
       <tr>
         <td><div align="left">'||v_inscnomevc||'</div></td>
         <td><div align="left">'||v_prognomevc||'</div></td>
         <td><div align="left">'||v_cursnomevc||'</div></td>
         <td><div align="center">'||v_cursoanonr||'</div></td>
        <td><div align="center">'||mpSpry.fcRadio(p_nome => 'p_classificar',
                                                 p_descricao => mpSpry.array_clob('SIM','não'),
                                                 p_valor => mpSpry.array_clob('1','0'),
                                                 p_dica => mpSpry.array_clob('Classifica o candidato','Desclassifica o candidato')) ||'
                                                 </div></td>
       
       </tr>');  
 




 end loop;
  
    
 /*<td><div align="center">'||mpSpry.fcCheckBox(
                         p_nome =>'classificar',
                         p_valor => '1',
                         p_dica =>'Selecione para classificar o candidato')||' </div></td>*/
  
  
  htp.p('</table>');
  
  htp.p('<tr><td align="center">'||
  mpspry.fcButtonSubmit(p_descricao => 'Salvar')||'

  </center></td></tr></form>');  
  
  --return v_texto;  
exception
  when others then
     mpspry.pcErro;  
end;




/*procedure:pcIncluirTurma
  descricao:gravar a inclusão da área de concentração*/ 
procedure pcIncluirInsc
(
  p_progcodnr                 inscricaopg.progcodnr%type,
  p_cursoanonr                inscricaopg.cursoanonr%type,
  p_nivelcursocodnr           inscricaopg.nivelcursocodnr%type,
  p_curscodnr                 inscricaopg.curscodnr%type,
  p_areacodnr                 inscricaopg.areacodnr%type,
  p_linhacodnr                inscricaopg.linhacodnr%type,
  p_inscnomevc                inscricaopg.inscnomevc%type,
  p_inscdtnascimentodt        inscricaopg.inscdtnascimentodt%type,
  p_insccpfvc                 inscricaopg.insccpfvc%type,
  p_inscrgnr                  inscricaopg.inscrgnr%type,
  p_inscufrgvc                inscricaopg.inscufrgvc%type,
  p_inscrgdt                  inscricaopg.inscrgdt%type,
  p_insctiteleitornr          inscricaopg.insctiteleitornr%type,
  p_insctitzonanr             inscricaopg.insctitzonanr%type,
  p_insctitsecaonr            inscricaopg.insctitsecaonr%type,
  p_insccertmilvc             inscricaopg.insccertmilvc%type default null,
  p_insccertmilorgaovc        inscricaopg.insccertmilorgaovc%type default null,
  p_inscestadocivilnr         inscricaopg.inscestadocivilnr%type,
  p_inscsexoch                inscricaopg.inscsexoch%type,
  p_inscpaivc                 inscricaopg.inscpaivc%type default null,
  p_inscmaevc                 inscricaopg.inscmaevc%type default null,
  p_inscresendvc              inscricaopg.inscresendvc%type default null,
  p_inscresbairrovc           inscricaopg.inscresbairrovc%type,
  p_inscrescidadevc           inscricaopg.inscrescidadevc%type,
  p_inscresufvc               inscricaopg.inscresufvc%type,
  p_inscrescepvc              inscricaopg.inscrescepvc%type,
  p_inscrestelvc              inscricaopg.inscrestelvc%type,
  p_inscemailvc               inscricaopg.inscemailvc%type,
  p_inscformcursovc           inscricaopg.inscformcursovc%type,
  p_inscformenfasevc          inscricaopg.inscformenfasevc%type,
  p_inscformdatagraudt        inscricaopg.inscformdatagraudt%type,
  p_inscforminstituicaovc     inscricaopg.inscforminstituicaovc%type,
  p_inscespcursovc            inscricaopg.inscespcursovc%type,
  p_inscespinstituicaovc      inscricaopg.inscespinstituicaovc%type,
  p_insclingest1vc           inscricaopg.insclingest1vc%type default null,
  p_insclingestnivel1nr       inscricaopg.insclingestnivel1nr%type default null,
  p_insclingest2vc           inscricaopg.insclingest2vc%type default null,
  p_insclingestnivel2nr       inscricaopg.insclingestnivel2nr%type default null,
  p_insclingest3vc           inscricaopg.insclingest3vc%type default null,
  p_insclingestnivel3nr       inscricaopg.insclingestnivel3nr%type default null,
  p_insclingest4vc           inscricaopg.insclingest4vc%type default null,
  p_insclingestnivel4nr       inscricaopg.insclingestnivel4nr%type default null,
  p_inscprofvincempnr         inscricaopg.inscprofvincempnr%type,
  p_inscprofempvc             inscricaopg.inscprofempvc%type default null,
  p_inscprofendvc             inscricaopg.inscprofendvc%type default null,
  p_inscprofbairrovc          inscricaopg.inscprofbairrovc%type default null,
  p_inscprofcidadevc          inscricaopg.inscprofcidadevc%type default null,
  p_inscprofufvc              inscricaopg.inscprofufvc%type default null,
  p_inscprofcepvc             inscricaopg.inscprofcepvc%type default null,
  p_inscvinccursonr           inscricaopg.inscvinccursonr%type,
  p_inscdediccursonr          inscricaopg.inscdediccursonr%type,
  p_inscprogcustnr            inscricaopg.inscprogcustnr%type,
  p_inscprogoutmeiosvc        inscricaopg.inscprogoutmeiosvc%type default null,
  p_inscorientadorvc          inscricaopg.inscorientadorvc%type default null,
  p_insccoorientadorvc        inscricaopg.insccoorientadorvc%type default null
) is

v_inscdatainscdt inscricaopg.inscdatainscdt%type;
begin  
  v_inscdatainscdt:=to_date(to_char(sysdate,'dd/mm/yyyy hh24:mi:ss'),'dd/mm/yyyy hh24:mi:ss');

/*insert into inscricaopg
  (cursoanonr, codinscpgnr, inscnomevc, inscrgnr, inscufrgvc, insccpfvc, linhacodnr, inscdtnascimentodt, inscsexoch, inscrgdt, inscpaivc, inscestadocivilnr, areacodnr, inscmaevc, inscresendvc, insctitsecaonr, inscresbairrovc, insctitzonanr, inscrescidadevc, inscresufvc, inscrescepvc, inscrestelvc, inscemailvc, insctiteleitornr, insccertmilvc, insccertmilorgaovc, inscforminstituicaovc, inscformcursovc, inscformenfasevc, inscprofvincempnr, inscorientadorvc, inscformdatagraudt, insccoorientadorvc, inscprogcustnr, inscespinstituicaovc, inscdediccursonr, inscdatainscdt, curscodnr, progcodnr, inscespcursovc, insclingest1vc, insclingest2vc, insclingest3vc, insclingest4vc, insclingestnivel1nr, insclingestnivel2nr, insclingestnivel3nr, insclingestnivel4nr, inscprofempvc, inscprofendvc, inscprofcidadevc, inscprofufvc, inscprofbairrovc, inscvinccursonr, inscprogoutmeiosvc, nivelcursocodnr, inscprofcepvc)
values
  (p_cursoanonr, sqmpclassificarcandidatopg.Nextval, upper(p_inscnomevc), p_inscrgnr, p_inscufrgvc, p_insccpfvc, p_linhacodnr, p_inscdtnascimentodt, p_inscsexoch, p_inscrgdt, upper(p_inscpaivc), p_inscestadocivilnr, p_areacodnr, upper(p_inscmaevc), upper(p_inscresendvc), p_insctitsecaonr, upper(p_inscresbairrovc), p_insctitzonanr, upper(p_inscrescidadevc), p_inscresufvc, p_inscrescepvc, p_inscrestelvc, p_inscemailvc, p_insctiteleitornr, p_insccertmilvc, p_insccertmilorgaovc, upper(p_inscforminstituicaovc), upper(p_inscformcursovc), upper(p_inscformenfasevc), p_inscprofvincempnr, upper(p_inscorientadorvc), p_inscformdatagraudt, upper(p_insccoorientadorvc), p_inscprogcustnr, upper(p_inscespinstituicaovc), p_inscdediccursonr, v_inscdatainscdt, p_curscodnr, p_progcodnr, upper(p_inscespcursovc), upper(p_insclingest1vc), upper(p_insclingest2vc), upper(p_insclingest3vc), upper(p_insclingest4vc), p_insclingestnivel1nr, p_insclingestnivel2nr, p_insclingestnivel3nr, p_insclingestnivel4nr, upper(p_inscprofempvc), upper(p_inscprofendvc), upper(p_inscprofcidadevc), p_inscprofufvc, upper(p_inscprofbairrovc), p_inscvinccursonr, upper(p_inscprogoutmeiosvc), p_nivelcursocodnr, p_inscprofcepvc);*/

  commit;

  mpspry.pcRedirect(p_mensagem => 'O registro foi incluído com sucesso!',
                    p_url => 'mpclassificarcandidatopg.inicio');


exception
  when dup_val_on_index then
      mpSpry.pcTelaErro('Candidato j&aacute; cadastrado!!!');
  when others then
     mpspry.pcErro;
   htp.p(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);

end;

/*procedure:pcExcluirInsc
  descricao:gravar a exclusão da inscrição do candidato*/ 
procedure pcExcluirInsc
(  
  p_progcodnr      inscricaopg.progcodnr%type, 
  p_curscodnr      inscricaopg.curscodnr%type,
  p_cursoanonr     inscricaopg.cursoanonr%type,
  p_insccpfvc      inscricaopg.insccpfvc%type
) is

  begin
    delete
    from inscricaopg
    where progcodnr=p_progcodnr
    and   curscodnr=p_curscodnr
    and   cursoanonr=p_cursoanonr
    and   insccpfvc=p_insccpfvc;
    commit;
    htp.p('<meta http-equiv="refresh" content="0;url=mpclassificarcandidatopg.inicio">');  

  exception
    when others then
      if (sqlcode = -2292) then
          mpSpry.pcTelaErro('Inscri&ccedil;&atilde;o do candidato n&atilde;o poder&aacute; ser exclu&iacute;da pois est&aacute; vinculada a outro processo!!!');  
          rollback;
      else    
          mputil2.pcexception;
          rollback;
      end if;   
end;


procedure pcAjaxAno
 (
   p_progcodnr  turmapg.progcodnr%type default null
 ) is
  
  
  begin
    htp.p(mpSpry.fcSelectQuery(
          p_nome => 'p_cursoanonr',
          p_query => 'select distinct turma.cursoanonr,turma.cursoanonr
              from turmapg turma,programapg prog
              where turma.progcodnr='||p_progcodnr||'
              and to_char(sysdate,''YYYY/MM/DD'') between to_char(turma.turmapginsciniciodt,''YYYY/MM/DD'') 
              and to_char(turma.turmapginscfinaldt,''YYYY/MM/DD'')
              and turma.progcodnr=prog.progcodnr 
              order by turma.cursoanonr',
          p_tamanho => 250,
          p_descricao_inicial => 'Selecione', 
          p_obrigatorio => true,
          p_onchange => 'if(this.selectedIndex!=0)
                           ajaxNivel(document.getElementById(''p_progcodnr'').value,this.value); 
                         else
                           document.getElementById(''div_ajaxnivel'').innerHTML=''&nbsp;'';
                           document.getElementById(''div_ajaxcurso'').innerHTML=''&nbsp;'';'));
exception
  when others then
     mpspry.pcErro;                            
end pcAjaxAno; 


procedure pcAjaxNivel
 (
   p_progcodnr  turmapg.progcodnr%type default null,
   p_cursoanonr turmapg.cursoanonr%type default null
 ) is
  
  begin
    htp.p(mpSpry.fcSelectQuery(
          p_nome => 'p_nivelcursocodnr',
          p_query => 'select nivel.nivelcursodescrvc,nivel.nivelcursocodnr
              from turmapg turma,nivelcursopg nivel
              where turma.progcodnr='||p_progcodnr||' and turma.cursoanonr='||p_cursoanonr||'
              and to_char(sysdate,''YYYY/MM/DD'') between to_char(turma.turmapginsciniciodt,''YYYY/MM/DD'') 
              and to_char(turma.turmapginscfinaldt,''YYYY/MM/DD'')
              and turma.nivelcursocodnr=nivel.nivelcursocodnr 
              order by nivel.nivelcursodescrvc',
          p_tamanho => 250, 
          p_descricao_inicial => 'Selecione', 
          p_obrigatorio => true,
          p_onchange => 'if(this.selectedIndex!=0)
                           ajaxCurso(document.getElementById(''p_progcodnr'').value,document.getElementById(''p_cursoanonr'').value,this.value); 
                         else
                           document.getElementById(''div_ajaxcurso'').innerHTML=''&nbsp;'';
                           document.getElementById(''div_ajaxarea'').innerHTML=''&nbsp;'';
                           document.getElementById(''div_ajaxlinha'').innerHTML=''&nbsp;'';'));
exception
  when others then
     mpspry.pcErro;                            
end pcAjaxNivel; 

procedure pcAjaxCurso
 (
   p_progcodnr  turmapg.progcodnr%type default null,
   p_cursoanonr turmapg.cursoanonr%type default null,
   p_nivelcursocodnr turmapg.nivelcursocodnr%type default null
 ) is
  
  begin
    htp.p(mpSpry.fcSelectQuery(
          p_nome => 'p_curscodnr',
          p_query => 'select curso.cursnomevc,turma.curscodnr
              from turmapg turma,curso curso
              where turma.progcodnr='||p_progcodnr||' and turma.cursoanonr='||p_cursoanonr||' and turma.nivelcursocodnr='||p_nivelcursocodnr||'
              and to_char(sysdate,''YYYY/MM/DD'') between to_char(turma.turmapginsciniciodt,''YYYY/MM/DD'') 
              and to_char(turma.turmapginscfinaldt,''YYYY/MM/DD'')
              and turma.curscodnr=curso.curscodnr 
              order by curso.cursnomevc',
          p_tamanho => 250, 
          p_descricao_inicial => 'Selecione', 
          p_obrigatorio => true,
          p_onchange => 'if(this.selectedIndex!=0)
                           ajaxArea(document.getElementById(''p_progcodnr'').value,document.getElementById(''p_cursoanonr'').value,document.getElementById(''p_nivelcursocodnr'').value,this.value); 
                         else
                           document.getElementById(''div_ajaxarea'').innerHTML=''&nbsp;'';
                           document.getElementById(''div_ajaxlinha'').innerHTML=''&nbsp;'';'));
exception
  when others then
     mpspry.pcErro;                            
end pcAjaxCurso; 








 

/*procedure:authorize
  descricao:função utilizada para autorizar o acesso ao usuário*/ 
function authorize return boolean is
  begin
   return fc_chavepkg; -- validação do usuário
  --  return true; -- acesso total
end authorize;

end mpclassificarcandidatopg;  
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5026
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você está conseguindo retornar o valor do checkbox pra sua package?
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

quando eu dou o submit ele manda o valor 1 para gravar no banco, mais o problema é que se tiver mais de uma linha ai dá erro ! acredito que tenha que usar um array no PL !
sp66d_rac6r
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Ter, 02 Dez 2008 10:43 am
Localização: Sorocaba-SP

Aproveitanto o tópico existente...

Gostaria de saber como faço para passar como parametros de execução da minha PKG, uma matriz bi-dimensional.

Tomem como exemplo, um pedido e seus itens.

A PKG deve receber todas as informações (Detalhe e Itens do Pedido) do VB e passa-las de uma vez só para a PKG.

A parte do Detalhe do Pedido é como tirar doce de criança.

Agora, quanto aos itens do pedido do pedido estou apanhando.

Poderiam me ajudar?

Agradeço desde já.

Forte abraço
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

Desculpe colega, mais não vou poder ajudar pois esse é o meu problema e não consegui resolver ainda !
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brothers,

OS Itens, não seria o caso de criar uma PL/SQL Table e passar tudo de uma vez?

Ou, será que entendi errado?

Se for passar por PL/SQL Table (Type), temos vários exemplos aqui.

qualquer coisa, só mandar.
ricardoas30
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 12 Dez 2008 12:33 pm
Localização: Curitiba
Contato:
Ricardo A. Silveira
Redes de Computadores
Pós Banco de Dados

Você está falando em %rowtype ???? aquele vetor implicito no PL/SQL do oracle ?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Não não brother,

Estou falando de RECORD e de uma TABLE desse RECORD.
Dessa forma, você passa o RECORD e, dentro da tua procedure, depois, lê ele num loop, no caso, os itens.

Vou ver se tenho algum exemplo aqui e te mando.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante