Milton
Seguindo a idéia de que você vai efetuar a inserção utilizando o insert (tendo
o listagg):
insert into expedicao
(produto_id, quantidade, oel_id)
select i.produto_id,
sum(i.quantidade),
listagg(i.item_nota_id, ',') WITHIN GROUP(ORDER BY i.item_nota
Olha o que achei... para todos os gostos, vale como estudo.
ORACLE-BASE - String Aggregation Techniques
http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php
http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php
ORACLE-BASE - String Aggregation
Usando a dica do Thiago dos Santos Leite (colega do Vitor Junior), segue outra
solução, que funcionou bem no Oracle 10. O exemplo do Thiago funciona no Oracle
11 em diante.
select e.id, e.produto, e.situacao, wm_concat(s.descricao) lista
from estoque e
join situacao s on bitand(e.situaca
Legal, que bom que gostou. Particularmente eu utilizaria a solução com função
por ser mais simples e de fácil manutenção. Mas, sempre é bom ter uma outra
forma na manga.
Abraços
Pessoal
De qualquer forma, segue duas soluçõezinhas que poderiam ser utilizadas para
resolver o problema, uma utilizando função e outra somente com SELECT. A
segunda é mais complexa porém resolve caso não seja possível criar uma function
(por motivos de grant mesmo).
Criação das tabelas:
Boa tarde
Melhorando o texto da minha dúvida (e inserindo quebras de linhas para
facilitar a leitura).
Estou com uma dúvida numa expressão regular no Oracle 11g.
Rodando o comando abaixo:
SELECT REGEXP_REPLACE('SELECT 1, 3, ''DRONE'' INTO VAUX , VVV , AAA FROM
TESTE; '|| 'SELET 2,4