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?
MANIPULAÇÃO DE CARACTERE
-
- Rank: DBA Júnior
- Mensagens: 223
- Registrado em: Qui, 14 Dez 2006 10:45 am
- Localização: Brasília-DF
Cleber Zumba de Souza
- dr_gori
- 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
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).
Tipo: se sua vstring é '10;20;30;40;50', e pedir:
Ele retornará 30.
Talvez você possa implementar isso aí no seu caso.
/*
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;
elemento( vstring, '3', ';')
Talvez você possa implementar isso aí no seu caso.
-
- 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.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes