Página 1 de 1

separar string com valores de tamanho variavel - SPLIT de String

Enviado: Ter, 06 Jul 2021 7:10 am
por plinioprotheus
Bom dia!

Tenho a seguinte informação:

no campo categoria é gravado a seguinte string:

Selecionar tudo

MERCEARIA \ MERCEARIA COMPLEMENTAR \ DOCES RECHEIOS COBERTURAS \FRUTA EM CALDA \ ABACAXI EM CALDA
São 5 niveis com tamanhos variaveis, preciso separar em colunas com cada nivel, por exemplo:

Selecionar tudo

produto   |nivel 1       |nivel 2                  |nivel 3                    |nivel 4            |nivel 5
NNNNNNNN   mercearia      mercearia complementar    doce recheios cobertura     Fruta em calda      abacaxi em calda
Verifiquei que o SPLIT de String separa a string, mas os resultados são gerados em uma coluna e não em varias colunas, como posso realizar essa separação?
cada produto tem a sua categoria, portanto o tamanho não é fixo.

Obrigado.

Re: separar string com valores de tamanho variavel - SPLIT de String

Enviado: Qua, 21 Jul 2021 8:02 pm
por dr_gori
Neste tópico: viewtopic.php?t=1653

Você encontra uma função chamada "ELEMENTO". Ela extrai um elemento dentro de uma string separada por um delimitador.
Você precisa criar essa função no seu banco de dados.


exemplo:

Selecionar tudo

SQL> select elemento('aaa;bbbbbbb;cccc;dddd', 1, ';') x from dual;

X
--------
aaa

SQL> select elemento('aaa;bbbbbbb;cccc;dddd', 2, ';') x from dual;

X
--------
bbbbbbb

SQL> 
Ou seja, você precisa fazer algo assim: (pelo que eu entendi o PRODUTO não está na query, portanto vai começar em 2)

Selecionar tudo

SELECT 
  elemento ( CAMPO_CATEGORIA, 2, '\') mercearia
, elemento ( CAMPO_CATEGORIA, 3, '\') mercearia_complementar
, elemento ( CAMPO_CATEGORIA, 4, '\') doces_recheios_coberturas
.
.
.
FROM sua_tabela