Curiosidade - função REVERSE

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
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
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

Taí uma função não documentada:

Selecionar tudo

SQL> select reverse('123456789') from dual;

REVERSE('
---------
987654321

SQL> select reverse('bom dia!') from dual;

REVERSE(
--------
!aid mob

SQL> select reverse('GLUFKE') from dual;

REVERS
------
EKFULG
charlesmafra
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qui, 19 Ago 2004 9:45 am
Localização: Angola
Contato:
Charles Mafra
Oracle Developer

Reverse também pode ser usado para um LOOP ser percorrido do valor mais alto para o mais baixo, como no exemplo...

Selecionar tudo

  1  BEGIN
  2  for x in  REVERSE 1..10 LOOP
  3     DBMS_OUTPUT.PUT_LINE('VALOR DE X ='||X);
  4  END LOOP;
  5* END;
SQL> /
VALOR DE X =10
VALOR DE X =9
VALOR DE X =8
VALOR DE X =7
VALOR DE X =6
VALOR DE X =5
VALOR DE X =4
VALOR DE X =3
VALOR DE X =2
VALOR DE X =1

Procedimento de PL/SQL concluído com êxito.
Bom não conhecia o comando REVERSE como mencionado anteriormente, como este é um Fórum de PL/SQL, lembrei deste.
Avatar do usuário
anderson
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 75
Registrado em: Seg, 06 Jun 2005 1:08 pm
Localização: Toledo - PR
Contato:
Anderson Nuernberg
---

mais um exemplo bem interessante...

Selecionar tudo

select reverse('socorram me subino onibus em marrocos') frase from dual;
[]´s :-o
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
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

Lá vai mais um:

Selecionar tudo

select reverse('A MALA NADA NA LAMA') frase from dual;
:D
leonchacal
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Seg, 18 Ago 2014 3:51 pm

O interessante é que o reverse não funciona assim:

Selecionar tudo

declare
v_campo varchar2(20);
v_inverte varchar2(20);

Begin
 v_campo := 'Teste de inversão';
 
 v_inverte := reverse(v_campo);
   
 dbms_output.put_line(v_inverte);  
End;
Relatório de erros -
ORA-06550: linha 8, coluna 15:
PLS-00201: o identificador 'REVERSE' deve ser declarado
ORA-06550: linha 8, coluna 2:
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Mais dois, :D

Selecionar tudo

select reverse('Anotaram a data da maratona') frase from dual;

select reverse('A man, a plan, a canal, Panama!') setence from dual;
Responder
  • Informação
  • Quem está online

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