Pessoal, Investi um pouco meu tempo para buscar uma solução legal e cheguei nessa conclusão:
--- CRIAÇÃO DA TYPE PARA USO DE COLEÇÃO -- CREATE OR REPLACE TYPE t_id IS TABLE OF NUMBER; / -- CRIAÇÃO DE FUNCTION PARA TRATAR A LISTA ENVIADA -- CREATE OR REPLACE FUNCTION fnc_gera_lista(lista VARCHAR2, delimitador VARCHAR2) RETURN t_id IS v_id t_id; BEGIN SELECT regexp_substr(REPLACE(lista, delimitador, ','), '[^,]+', 1, LEVEL) AS lista BULK COLLECT INTO v_id FROM dual CONNECT BY regexp_substr(REPLACE(lista, delimitador, ','), '[^,]+', 1, LEVEL) IS NOT NULL; RETURN v_id; END; / ----------------------- EXEMPLO DE UTILIZAÇÃO: SELECT * FROM TBCARGO C WHERE C.CARGOID IN (SELECT COLUMN_VALUE AS LISTA FROM TABLE(FNC_GERA_LISTA(';22;19;30;35;40;60;71;92;', ';'))); SELECT COLUMN_VALUE AS LISTA FROM TABLE(FNC_GERA_LISTA(';22;19;30;35;40;60;71;92;', ';')); Fica a dica aí... Att, Emerson S. Gaudêncio Em 19 de agosto de 2015 09:26, Eduardo Perdomo panc...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: > > > A aplicação tem que tratar isso e montar o SQL de acordo. Valores string > com aspas e separados com virgulas. Valores numéricos sem aspas e TB > separados por virgula. > Em 19/08/2015 09:54, "Paulo emlis...@emanager.com.br [oracle_br]" < > oracle_br@yahoogrupos.com.br> escreveu: > >> >> >> Bom dia. >> >> Isso ai, era assim mesmo que usava, mas como eu disse, já faz um certo >> tempo(ou muito tempo) que usei, >> e com certeza não me lembrava mais como era. É realmente não é muito >> "bonito" mas na época resolveu. >> >> Abraço Andre. >> >> Att, >> >> Paulo >> >> >> >> >> >> Em 18/08/2015 16:47, Andre Santos andre.psantos...@gmail.com [oracle_br] >> escreveu: >> >> >> Paulo >> >> Isso que você comentou, é bem provável que tenha sido feito com LIKE (ao >> invés do operador IN). >> Partindo do seu exemplo: ... codfornec in ('#22#19#30#35#40#') >> Seria algo +/- assim: ... '#22#19#30#35#40#' LIKE '%#' || codfornec || >> '#%' >> >> Mas pagaria um preço em performance e escalabilidade... talvez ficando >> inviável, dependendo do contexto. >> >> [ ]'s >> >> André >> >> >> Em 18 de agosto de 2015 15:11, jlchia...@yahoo.com.br [oracle_br] < >> <oracle_br@yahoogrupos.com.br>oracle_br@yahoogrupos.com.br> escreveu: >> >>> >>> >>> Paulo, essa sintaxe de valores separados por # ** COM CERTEZA ** não é >>> aceita pelo RDBMS Oracle, que é o tópico-fim aqui do grupo - isso parece >>> coisa de postgre... afaik no RDBMS Oracle é mesmo OU se ter os valores numa >>> tabela e usar sub-query OU se escrever uma proc que "abra" os valores >>> dentro da string, cfrme mostrei em msg anterior... >>> >>> []s >>> >>> Chiappa >>> >>> OBS : me recuso a usar porquices tipo montar um SQL dinâmico com os >>> valores extraídos da string separada por vírgula, então nem comento essa >>> possibilidade... >>> >> >> >> >