Ir para o conteúdo principal

With, Substr e Instr

Neste exemplo será mostrado como utilizar as funções WithSubstr e Instr combinadas. Vamos dividir em colunas, as informações de uma nota fiscal parametrizadas por posição.

Texto com as informações:

'NF 123456 - DT 07/10/2019 - VL 37,99'

Código:

  WITH nota AS (SELECT 'NF 123456 - DT 07/10/2019 - VL 37,99' AS dados FROM dual)
SELECT SUBSTR(dados, INSTR(dados, 'NF')+3, INSTR(dados, '-')-(INSTR(dados, 'NF')+4)) AS numeronf,
       SUBSTR(dados, INSTR(dados, 'DT')+3, INSTR(dados, '-', 1, 2)-(INSTR(dados, 'DT')+4)) AS dataemissao,
       SUBSTR(dados, INSTR(dados, 'VL')+3) AS valortotal
  FROM nota

Retorno:

| NUMERONF | DATAEMISSAO | VALORTOTAL |
---------------------------------------
| 123456   | 07/10/2019  | 37,99      |

Neste caso:

  • With: está sendo utilizado para que não seja preciso retornar o texto em todas as colunas, evitando repetir código e tempo de processamento;
  • Substr: está retornando dados a partir de uma posição até outra informadas do texto;
  • Instr: retorna a posição do texto, onde se encontra o caractere ou conjunto de caracteres informado, para usar a posição no Substr;