e outra, quando é sql meio grande, tipo 250 linhas... como que vc vai fazer um execute immediate
isso da muito trabalho... acho mais facil trabalhar com a variavel individual... att, ----- Original Message ----- From: Bruno Lorenzini To: [email protected] Cc: [EMAIL PROTECTED] Sent: Wednesday, August 06, 2008 10:56 AM Subject: RES: [oracle_br] Re: Duvida Não sei não... acho que a instrução não funciona, ele entende como sendo um valor só dentro da variável O que dá pra fazer é usar o EXECUTE IMEDIATE ou usar um FOR passando uma variável como condição... mas assim, direto, acho que não rola não. Vlw _____ De: [email protected] [mailto:[EMAIL PROTECTED] Em nome de [EMAIL PROTECTED] Enviada em: quarta-feira, 6 de agosto de 2008 10:58 Para: [email protected] Cc: [EMAIL PROTECTED] Assunto: RES: [oracle_br] Re: Duvida Bom dia. Se não estive enganado o que você deseja pode ser obtido através deste código: DECLARE -- PARÂMETRO DE ENTRADA DA SUA PROCEDURE V_PARAMETRO VARCHAR2(20) := 'AP,AM,PA,RR,MA'; -- VARIÁVEL PARA MONTAR O SQL E EXIBIR A SAÍDA V_SQL VARCHAR2(50) := ''; V_SAIDA VARCHAR2(20) := ''; BEGIN -- SUBSTITUR A VÍRGULA POR ASPAS, VÍRGULA, ASPAS V_SQL := ''''||REPLACE(V_PARAMETRO,',',''',''')||''''; -- EXEMPLO DE USO DA INSTRUÇÃO SQL SELECT TRUNC(SYSDATE) INTO V_SAIDA FROM DUAL WHERE 1 = 1 OR '1' IN (V_SQL); dbms_output.put_line(' SAÍDA = '||TO_CHAR(V_SAIDA)); END; ________________________________ De: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br [mailto:[EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br] Em nome de Mária Cristina Silva Enviada em: quarta-feira, 6 de agosto de 2008 10:45 Para: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br Assunto: Re: [oracle_br] Re: Duvida Desculpa, acho q não estou sabendo explicar. Bom a Expressão é exatamente assim, isso é um paramentro *'AP, AM, PA, RR, MA',* e a ideia é usar a *Where in (...)* sim, porem com os dados da expressão acima divididos como nesse exemplo: *where in ('AP','AM','PA','RR','MA')* On 8/6/08, Flaviano, Wellington (GE Money) <wellington.flaviano <mailto:wellington.flaviano%40ge.com> @ge.com <mailto:wellington.flaviano%40ge.com> > wrote: > > Se eu entendi vc nao quer utiliar o comando where in (...) ?? Muito > grande? > No caso, se fosse numerico o campo vc poderia utiliar o between: between > campo in 1 and 23000, agora do tipo varchar acredito que não funciona, mas > pode fazer um teste. > > > ________________________________ > > From: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br <mailto:oracle_br%40yahoogrupos.com.br> <oracle_br%40yahoogrupos.com.br>[mailto: > [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br <mailto:oracle_br%40yahoogrupos.com.br> <oracle_br%40yahoogrupos.com.br>] On Behalf > Of Mária Cristina Silva > Sent: Wednesday, August 06, 2008 10:36 AM > To: [EMAIL PROTECTED] <mailto:oracle_br%40yahoogrupos.com.br> os.com.br <mailto:oracle_br%40yahoogrupos.com.br> <oracle_br%40yahoogrupos.com.br> > Subject: [oracle_br] Re: Duvida > > Bom dia!! > > Por acaso alguém pode me ajudar? > > Tenho a seguinte Expressão: *'AP, AM, PA, RR, MA'*, é um paramentro de uma > procedure do tipo varchar2, porém quando esses dados entrar , eu tenho que > pesquisar numa query usando a clausula *where in* e quebrando a expressão > como string ex: *where in ('AP','AM','PA','RR','MA') * > > Sabem como posso fazer isso, se existe algum comando pra facilitar, eu > pensei em usar substr, mas acho q pode ter algo mais fácil.. > > Agradeço atenção. > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Abraços, Mária Cristina Cel: 031-8883-5543 E-mail: mariancristina@ <mailto:mariancristina%40gmail.com> gmail.com <mailto:mariancristina%40gmail.com> MSN: mcristinasilva3@ <mailto:mcristinasilva3%40hotmail.com> hotmail.com <mailto:mcristinasilva3%40hotmail.com> -- "O começo é a parte mais importante do trabalho." - Platão [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
