MANIPULAÇÃO DE CARACTERE

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Pessoal é o seguinte:

Estou com uma coluna que existe os os seguintes registros:

NUM_NOTA
----------------------
15 - 9111 - IRRF
234 - 51 - IRRF
124 - 3407 - IRRF
30 - 1107 - IRRF
.
.
.


Eu preciso pegar sempre e somente os números do meio, eu podereia fazer utilizando o função "SUBSTR" mas os números sempre variam de tamanho. Fiz isso uma vez mas eu não me lembro mais, alguém pode me ajudar por favor?
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

Eu tenho a seguinte função que extrai um determinado "elemento" de uma string (com um caracter separador).

Selecionar tudo

/*
 PARAMETROS DE ENTRADA
 - p_string : varchar2 contendo o string completo com os n elementos.
 - p_element: pls_integer contendo o índice do elemento a ser extraído.
 - p_separador: varchar2 contendo a marca utilizada como separadora dos elementos.

 RETORNO
 - Varchar2 com o elemento solicitado por parâmetro. Se não existir, retorna NULL
*/
FUNCTION elemento(p_string VARCHAR2, p_elemento PLS_INTEGER, p_separador VARCHAR2 DEFAULT cte_SEPARADOR) RETURN VARCHAR2 AS
  v_string VARCHAR2(5000);
BEGIN
  v_string := p_string || p_separador;
  FOR i IN 1 .. p_elemento - 1
  LOOP
    v_string := SUBSTR(v_string,INSTR(v_string,p_separador)+LENGTH(p_separador));
  END LOOP;
  RETURN SUBSTR(v_string,1,INSTR(v_string,p_separador)-1);
END elemento;   
Tipo: se sua vstring é '10;20;30;40;50', e pedir:

Selecionar tudo

elemento( vstring, '3', ';')
Ele retornará 30.

Talvez você possa implementar isso aí no seu caso. :-o
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

valeu, serviu..foi muito útil, muito obrigado.
Responder
  • Informação
  • Quem está online

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