Ordenar de acordo com itens do select

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Boa Tarde Pessoal,
Como faço pra ordenar um campo string de acordo com um select?

Tenho um campo Sistema, em que posso digitar, letras seguidos de sinais.
Digito então. C+,D+,J+.
Numa tabela essas letras possuem uma ordem a segui-las.

Selecionar tudo

select distinct i.cd_item,t.cd_ordem_exibicao ordem_tabela, i.cd_ordem_exibicao ordem_item
             from tabela_sistema t,
                  itens_tabela_sistema i
            where i.cd_sistema = t.cd_sistema
            order by t.cd_ordem_exibicao,i.cd_ordem_exibicao;

--Aparece então desse jeito

cd_item  -- ordem_tabela --- ordem_item
   D                   1                        1
   C                   1                         2 
   J                    2                        1

Gostaria que meu parâmetro retornasse esse cd_item, de acordo com a ordem
D+ C+ J+. Não importando da forma q eu digitar.

Alguém me daria uma ideia pra realizar essa validação?
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Pensei num jeito pessoal.
Mais creio que seja o mais correto. porque sempre vai ter mais de 20 ordens tanto de tabela, quanto de item.
Gostaria de fazer algo mais dinâmico.

Selecionar tudo

.
.
.
.
.

   declare
	    	cursor c1 is
    	     select distinct i.cd_item,t.cd_ordem_exibicao ordem_tabela, i.cd_ordem_exibicao ordem_item
             from tabela_sistema t,
                  itens_tabela_sistema i
            where i.cd_sistema = t.cd_sistema
            order by decode(i.cd_item,v_item,t.cd_ordem_exibicao,i.cd_ordem_exibicao);
         r1 c1%rowtype;
	    begin
	    open c1;
      loop
	    fetch c1 into r1;
	    exit when c1%notfound;	
	    if r1.cd_item = v_item then
	    	if r1.ordem_tabela = 1 then
	    		 if r1.ordem_item = 1 then
	    		v_where1 := r1.cd_item||v_resultado;
	    		 elsif r1.ordem_item = 2 then
	    		 		v_where := r1.cd_item||v_resultado;
	    	   	end if;
	    	end if;
	    end if;
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Se entendi bem, você poderia atribuir a a cada valor de cd_item um valor para ordenação, usando o decode:

Selecionar tudo

order by decode( i.cd_item, 'D', 1, 'C', 2, 'J', 3 /*, demais valores possíveis...*/ ), t.cd_ordem_exibicao, i.cd_ordem_exibicao
Agora se os possíveis valores de cd_item podem mudar a qualquer momento, ou se a lista for muito extensa, talvez seria melhor criar uma coluna (ou mesmo uma tabela) para armazenar este parâmetro de ordenação para cada código criado.
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Dae Rogenaro

Realmente a lista é enorme, possui 89 itens.
E a única lógica que ainda consigo pensar é fazer esse código
Porém fazer 89 verificações, e colocar 89 parâmetros, como o v_where1 e v_where.
Não iria ficar algo muito inteligente.

Selecionar tudo

 if r1.ordem_tabela = 1 then
          	    if r1.ordem_item = 1 then
                   v_where1 := r1.cd_item||v_resultado;
                elsif r1.ordem_item = 2 then
                   v_where := r1.cd_item||v_resultado;
                  ...........
                end if;
             end if;
Como eu poderia fazer isso, tens algum exemplo?
"talvez seria melhor criar uma coluna (ou mesmo uma tabela) para armazenar este parâmetro de ordenação para cada código criado."
[
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis

Gente, consegui fazer, porém ficou algo horrível.
Alguém teria uma ideia de como deixar isso mais bonito. rsrs

Selecionar tudo

 v_where varchar2(2000);
  v_item  varchar2(20);
  v_resultado varchar2(10);
  v_sinal char(3);
  v_fenotipo varchar2(500);
  
 
v_tab1_item1 varchar2(10);
v_tab1_item2 varchar2(10);
v_tab1_item3 varchar2(10);
v_tab1_item4 varchar2(10);
v_tab1_item5 varchar2(10);
v_tab1_item6 varchar2(10);
v_tab1_item7 varchar2(10);
v_tab1_item8 varchar2(10);
v_tab1_item9 varchar2(10);
v_tab1 varchar2(2000);

v_tab2_item1 varchar2(10);
v_tab2_item2 varchar2(10);
v_tab2_item3 varchar2(10);
v_tab2_item4 varchar2(10);
v_tab2_item5 varchar2(10);
v_tab2_item6 varchar2(10);
v_tab2 varchar2(2000);

v_tab3_item1 varchar2(10);
v_tab3_item2 varchar2(10);
v_tab3 varchar2(2000);

v_tab4_item1 varchar2(10);
v_tab4_item2 varchar2(10);
v_tab4 varchar2(2000);

v_tab5_item1 varchar2(10);
v_tab5_item2 varchar2(10);
v_tab5 varchar2(2000);

v_tab6_item1 varchar2(10);
v_tab6_item2 varchar2(10);
v_tab6_item3 varchar2(10);
v_tab6_item4 varchar2(10);
v_tab6 varchar2(2000);

v_tab7_item1 varchar2(10);
v_tab7 varchar2(2000);

v_tab8_item1 varchar2(10);
v_tab8_item2 varchar2(10);
v_tab8_item3 varchar2(10);
v_tab8_item4 varchar2(10);
v_tab8 varchar2(2000);

v_tab9_item1 varchar2(10);
v_tab9_item2 varchar2(10);
v_tab9 varchar2(2000);

v_tab10_item1 varchar2(10);
v_tab10_item2 varchar2(10);
v_tab10_item3 varchar2(10);
v_tab10_item4 varchar2(10);
v_tab10 varchar2(2000);

v_tab11_item1 varchar2(10);
v_tab11_item2 varchar2(10);
v_tab11 varchar2(2000);

v_tab12_item1 varchar2(10);
v_tab12_item2 varchar2(10);
v_tab12 varchar2(2000);

v_tab13_item1 varchar2(10);
v_tab13_item2 varchar2(10);
v_tab13_item3 varchar2(10);
v_tab13 varchar2(2000);

v_tab14_item1 varchar2(10);
v_tab14_item2 varchar2(10);
v_tab14_item3 varchar2(10);
v_tab14_item4 varchar2(10);
v_tab14_item5 varchar2(10);
v_tab14 varchar2(2000);

v_tab15_item1 varchar2(10);
v_tab15_item2 varchar2(10);
v_tab15_item3 varchar2(10);
v_tab15 varchar2(2000);

v_tab16_item1 varchar2(10);
v_tab16_item2 varchar2(10);
v_tab16_item3 varchar2(10);
v_tab16 varchar2(2000);

v_tab17_item1 varchar2(10);
v_tab17_item2 varchar2(10);
v_tab17_item3 varchar2(10);
v_tab17_item4 varchar2(10);
v_tab17_item5 varchar2(10);
v_tab17_item6 varchar2(10);
v_tab17_item7 varchar2(10);
v_tab17_item11 varchar2(10);
v_tab17_item12 varchar2(10);
v_tab17 varchar2(2000);

v_tab18_item1 varchar2(10);
v_tab18 varchar2(2000);

v_tab19_item1 varchar2(10);
v_tab19 varchar2(2000);

v_tab20_item1 varchar2(10);
v_tab20_item2 varchar2(10);
v_tab20_item3 varchar2(10);
v_tab20_item4 varchar2(10);
v_tab20_item5 varchar2(10);
v_tab20_item6 varchar2(10);
v_tab20_item7 varchar2(10);
v_tab20 varchar2(2000);

v_tab21_item1 varchar2(10);
v_tab21_item2 varchar2(10);
v_tab21_item3 varchar2(10);
v_tab21_item4 varchar2(10);
v_tab21_item5 varchar2(10);
v_tab21_item6 varchar2(10);
v_tab21_item7 varchar2(10);
v_tab21_item8 varchar2(10);
v_tab21_item9 varchar2(10);
v_tab21_item10 varchar2(10);
v_tab21 varchar2(2000);

v_tab22_item1 varchar2(10);
v_tab22_item2 varchar2(10);
v_tab22_item3 varchar2(10);
v_tab22_item4 varchar2(10);
v_tab22 varchar2(2000);

v_tab23_item1 varchar2(10);
v_tab23_item2 varchar2(10);
v_tab23 varchar2(2000);

v_tab24_item1 varchar2(10);
v_tab24 varchar2(2000);
  
begin	


	if :ds_fenotipagem is not null then
	
		if substr(:ds_fenotipagem,length(:ds_fenotipagem),1) <> ',' then
			v_fenotipo := :ds_fenotipagem||',';
		else
			v_fenotipo := :ds_fenotipagem;
	  end if;		
	
	   for i in 1..length(v_fenotipo) loop
	     if substr(v_fenotipo,i,1) in ('+','-') then
	      	v_resultado := substr(v_fenotipo,i,1);
	     elsif substr(v_fenotipo,i,1) = ',' then
	   declare
	        	
       Cursor c1 Is
       Select i.cd_item, 
              t.cd_ordem_exibicao ordem_tabela, 
              i.cd_ordem_exibicao ordem_item
         from tabela_sistema t,
              itens_tabela_sistema i
        where i.cd_sistema = t.cd_sistema
          and i.cd_item = v_item
        order by t.cd_ordem_exibicao, i.cd_ordem_exibicao;
         r1 c1%rowtype;
     
	   begin
	   		        	
	   open c1;
     loop
		 fetch c1 into r1;
		 exit when c1%notfound;
		 
		  if r1.cd_item = v_item then
		      	
		     if r1.ordem_tabela = 1 then
		      		
		         	 if r1.ordem_item = 1 then
		         	   	v_tab1_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab1_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab1_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab1_item4 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 5 then
		         	 		v_tab1_item5 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 6 then
		         	 		v_tab1_item6 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 7 then
		         	 		v_tab1_item7 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 8 then
		         	 		v_tab1_item8 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 9 then
		         	 		v_tab1_item9 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab1 := v_tab1_item1||v_tab1_item2||v_tab1_item3||v_tab1_item4||v_tab1_item5||v_tab1_item6||
		         	 		          v_tab1_item7||v_tab1_item8||v_tab1_item9;
		        
		     elsif r1.ordem_tabela = 2 then
		         	  			
		         	 if r1.ordem_item = 1 then
		         	 		v_tab2_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab2_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab2_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab2_item4 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 5 then
		         	 		v_tab2_item5 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 6 then
		         	 		v_tab2_item6 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab2 := v_tab2_item1||v_tab2_item2||v_tab2_item3||v_tab2_item4||v_tab2_item5||v_tab2_item6;
		         	  		            
		     elsif r1.ordem_tabela = 3 then
		         	
		         	 if r1.ordem_item = 1 then
		         	    v_tab3_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 	  v_tab3_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab3 := v_tab3_item1||v_tab3_item2;
		         	
		     elsif r1.ordem_tabela = 4 then
		         
		         	 if r1.ordem_item = 1 then
		         	    v_tab4_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab4_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab4 := v_tab4_item1||v_tab4_item2;	
		         	   
		     elsif r1.ordem_tabela = 5 then
		         	
		         	 if r1.ordem_item = 1 then
		         	    v_tab5_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab5_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab5 := v_tab5_item1||v_tab5_item2;	
		         	   
		     elsif r1.ordem_tabela = 6 then
		         	  			
		         	 if r1.ordem_item = 1 then
		         	 		v_tab6_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab6_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab6_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab6_item4 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab6 := v_tab6_item1||v_tab6_item2||v_tab6_item3||v_tab6_item4;
		         	 
		     elsif r1.ordem_tabela = 7 then
		     
		         	 if r1.ordem_item = 1 then
		         	 		v_tab7_item1 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab7 := v_tab7_item1;
		         	  			
		     elsif r1.ordem_tabela = 8 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	   	v_tab8_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	   	v_tab8_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	   	v_tab8_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	   	v_tab8_item4 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	    v_tab8 := v_tab8_item1||v_tab8_item2||v_tab8_item3||v_tab8_item4;
		         	 
		     elsif r1.ordem_tabela = 9 then
		            
		           if r1.ordem_item = 1 then
		         	    v_tab9_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab9_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab9 := v_tab9_item1||v_tab9_item2;	
		         	    
		     elsif r1.ordem_tabela = 10 then
		           
		           if r1.ordem_item = 1 then
		         	 		v_tab10_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab10_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab10_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab10_item4 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab10 := v_tab10_item1||v_tab10_item2||v_tab10_item3||v_tab10_item4;
		         	    	
		     elsif r1.ordem_tabela = 11 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	    v_tab11_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab11_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab11 := v_tab11_item1||v_tab11_item2;
		     	
		     elsif r1.ordem_tabela = 12 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	    v_tab12_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab12_item2 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab12 := v_tab12_item1||v_tab12_item2; 	
		        
		     elsif r1.ordem_tabela = 13 then
		         
		         	 if r1.ordem_item = 1 then
		         	    v_tab13_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab13_item2 := r1.cd_item||v_resultado||'%';  
		         	 elsif r1.ordem_item = 3 then
		         		  v_tab13_item3 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab13 := v_tab13_item1||v_tab13_item2||v_tab13_item3;
		      
		     elsif r1.ordem_tabela = 14 then
		           
		           if r1.ordem_item = 1 then
		         	 		v_tab14_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab14_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab14_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab14_item4 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 5 then
		         	 		v_tab14_item5 := r1.cd_item||v_resultado||'%';
		         	 end if;
		         	 		v_tab14 := v_tab14_item1||v_tab14_item2||v_tab14_item3||v_tab14_item4||v_tab14_item5;
		         	    	
		     elsif r1.ordem_tabela = 15 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	    v_tab15_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab15_item2 := r1.cd_item||v_resultado||'%';  
		         	 elsif r1.ordem_item = 3 then
		         		  v_tab15_item3 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab15 := v_tab15_item1||v_tab15_item2||v_tab15_item3;
		         	    
		     elsif r1.ordem_tabela = 16 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	    v_tab16_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         		  v_tab16_item2 := r1.cd_item||v_resultado||'%';  
		         	 elsif r1.ordem_item = 3 then
		         		  v_tab16_item3 := r1.cd_item||v_resultado||'%';  
		         	 end if;
		         	    v_tab16 := v_tab16_item1||v_tab16_item2||v_tab16_item3;
		         	    
		     elsif r1.ordem_tabela = 17 then
		         	 
		         	 if r1.ordem_item = 1 then
		         	   	v_tab17_item1 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 2 then
		         	 		v_tab17_item2 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 3 then
		         	 		v_tab17_item3 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 4 then
		         	 		v_tab17_item4 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 5 then
		         	 		v_tab17_item5 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 6 then
		         	 		v_tab17_item6 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 7 then
		         	 		v_tab17_item7 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 11 then
		         	 		v_tab17_item11 := r1.cd_item||v_resultado||'%';
		         	 elsif r1.ordem_item = 12 then
		         	 		v_tab17_item12 := r1.cd_item||v_resultado||'%';
		         	 end if;		
		         	  	v_tab17 := v_tab17_item1||v_tab17_item2||v_tab17_item3||
		         	 		          v_tab17_item4||v_tab17_item5||v_tab17_item6||
		         	 		          v_tab17_item7||v_tab17_item11||v_tab17_item12;					
		         	  					
		      elsif r1.ordem_tabela = 18 then   	  			
		         	  
		         	  if r1.ordem_item = 1 then
		         	 		v_tab18_item1 := r1.cd_item||v_resultado||'%';
		         	  end if;
		         	 		v_tab18 := v_tab18_item1;		
		            	  					
		      elsif r1.ordem_tabela = 19 then   	  			
		         	  
		         	  if r1.ordem_item = 1 then
		         	 		v_tab19_item1 := r1.cd_item||v_resultado||'%';
		         	  end if;
		         	 		v_tab19 := v_tab19_item1;		
		      
		      elsif r1.ordem_tabela = 20 then 	  			 	  			
		         	  
		         	  if r1.ordem_item = 1 then
		         	   	 v_tab20_item1 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 2 then
		         	 		 v_tab20_item2 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 3 then
		         	 	   v_tab20_item3 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 4 then
		         	 		 v_tab20_item4 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 5 then
		         	   	 v_tab20_item5 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 6 then
		         	 		 v_tab20_item6 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 7 then
		         	 		 v_tab20_item7 := r1.cd_item||v_resultado||'%';
		         	  end if;
		         	 		 v_tab20 := v_tab20_item1||v_tab20_item2||v_tab20_item3||v_tab20_item4||v_tab20_item5||
		         	 		            v_tab20_item6||v_tab20_item7;
		         	 		          
		      elsif r1.ordem_tabela = 21 then
		         	  
		         	  if r1.ordem_item = 1 then
		         	   	 v_tab21_item1 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 2 then
		         	 		 v_tab21_item2 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 3 then
		         	 	   v_tab21_item3 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 4 then
		         	 		 v_tab21_item4 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 5 then
		         	 		 v_tab21_item5 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 6 then
		         	 		 v_tab21_item6 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 7 then
		         	 		 v_tab21_item7 := r1.cd_item||v_resultado||'%';
                elsif r1.ordem_item = 7 then
		         	 		 v_tab21_item8 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 7 then
		         	 		 v_tab21_item9 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 7 then
		         	 		 v_tab21_item10 := r1.cd_item||v_resultado||'%';
		         	  end if;
		         	     v_tab21 := v_tab21_item1||v_tab21_item2||v_tab21_item3||v_tab21_item4||v_tab21_item5||
		         	                v_tab21_item6||v_tab21_item7||v_tab21_item8||v_tab21_item9||v_tab21_item10;
		        
		      elsif r1.ordem_tabela = 22 then
		         
		            if r1.ordem_item = 1 then
		         	   	 v_tab22_item1 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 2 then
		         	 		 v_tab22_item2 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 3 then
		         	 	   v_tab22_item3 := r1.cd_item||v_resultado||'%';
		         	  elsif r1.ordem_item = 4 then
		         	 		 v_tab22_item4 := r1.cd_item||v_resultado||'%';	  
		         	  end if;
		         	     v_tab22 := v_tab22_item1||v_tab22_item2||v_tab22_item3||v_tab22_item4;
		       
		       elsif r1.ordem_tabela = 23 then 		         	  	
		         	
		         	   if r1.ordem_item = 1 then
		         	   	  v_tab23_item1 := r1.cd_item||v_resultado||'%';
		         	   elsif r1.ordem_item = 2 then
		         	 		  v_tab23_item2 := r1.cd_item||v_resultado||'%'; 	 
		         	   end if;
		         	      v_tab23 := v_tab23_item1||v_tab23_item2;
		        
		       elsif r1.ordem_tabela = 24 then
		             
		             if r1.ordem_item = 1 then
		         	   	  v_tab24_item1 := r1.cd_item||v_resultado||'%';
		             end if;
		             v_tab24 := v_tab24_item1;
		       
		       end if;
		   		 end if;
		  end loop;
		   		  
      :parameter.fenotipo := v_tab1||v_tab2||v_tab3||v_tab4||v_tab5||v_tab6||v_tab7||v_tab8||v_tab9||v_tab10||
                             v_tab11||v_tab12||v_tab13||v_tab14||v_tab15||v_tab16||v_tab17||v_tab18||v_tab19||
                             v_tab20||v_tab21||v_tab22||v_tab23||v_tab24;
       
      close c1;
      end;
	        
	        v_item := null;	
	        v_resultado := null;
	     else
	     	  v_item := v_item||substr(v_fenotipo,i,1);
	     end if;	  
	   end loop;
end if;

END;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes