RES: [oracle_br] Retornar um Result Set
André. Bom dia. Se você enviar o arquivo ficarei muito agradecido. Atenciosamente, Helder Oliveira ESTE COMUNICADO PODE CONTER MATERIAL CONFIDENCIAL E/OU PROPRIETÁRIO e é, por conseqüência, para uso exclusivo do destinatário correto. Se você recebeu este comunicado indevidamente, favor contatar ao remetente e remover a mensagem (e-mail) e seus respectivos anexos de todos os computadores. THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers. -Mensagem original- De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome de Andre Santos Enviada em: terça-feira, 31 de agosto de 2010 19:45 Para: oracle_br@yahoogrupos.com.br Assunto: Re: [oracle_br] Retornar um Result Set Helder Não sei... poderia tentar enviar um e-mail para os moderadores. Se não conseguir, depois posso enviar o arquivo para você. Ok? [ ] André Em 31 de agosto de 2010 14:16, Helder Alves de Oliveira helder_olive...@ig.com.br escreveu: André. Boa tarde. Sim é o que eu quero, mas estou com problema para entrar no grupo. Tento trocar a senha, mas me é pedido para validar alguns dados com estado, só que alista vem vazia. Saberia alguma outra forma para eu trocar a minha senha? Helder Em 31 de agosto de 2010 12:53, Andre Santos andre.psantos...@gmail.com andre.psantos.ti%40gmail.comescreveu: Helder Há algum tempo deixei um exemplo, na seção de arquivos do grupo (oracle_br) de Excel com conexão ao Oracle. Não me lembro mais se é o que você precisa, mas acho que usava OO4O. [ ] André Em 31 de agosto de 2010 09:18, Helder Alves de Oliveira helder_olive...@ig.com.br helder_oliveira%40ig.com.br escreveu: Bom dia! Agradeço (André e Laurindo), estarei usando VBA e OO4O. Atenciosamente, Helder Oliveira Em 30 de agosto de 2010 17:41, Gustavo Queiroz gustavo...@yahoo.com.br gustavoqfh%40yahoo.com.br gustavoqfh% 40yahoo.com.brescreveu: Pessoal, Muito obrigado pela ajuda. Utilizei o método proposto pelo Thiago Pinheiro (Function Pipelined) e resolveu o meu problema. Gustavo Queiroz --- Em seg, 30/8/10, Andre Santos andre.psantos...@gmail.comandre.psantos.ti%40gmail.com andre.psantos.ti%40gmail.com andre.psantos.ti%40gmail.com escreveu: De: Andre Santos andre.psantos...@gmail.comandre.psantos.ti%40gmail.com andre.psantos.ti% 40gmail.com andre.psantos.ti%40gmail.com Assunto: Re: [oracle_br] Retornar um Result Set Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.broracle_br% 40yahoogrupos.com.br oracle_br% 40yahoogrupos.com.br Data: Segunda-feira, 30 de Agosto de 2010, 12:08 Gustavo Uma idéia também seria utilizar tabela temporária (GTT). [ ] André Em 30 de agosto de 2010 10:35, Thiago Pinheiro thiago.pinhe...@ymail.com thiago.pinheiro%40ymail.comthiago.pinheiro% 40ymail.com thiago.pinheiro% 40ymail.comescreveu: Olá Gustavo, Já deu uma lida sobre function PIPELINED? Acredito que possa lhe ajudar! Não tenho nenhum link aqui na manga para lhe ajudar, mas faz uma busca na net que encontra bastante. *Atenciosamente,* ***-- * Thiago Pinheiro Em 27 de agosto de 2010 17:10, Gustavo Queiroz gustavo...@yahoo.com.br gustavoqfh%40yahoo.com.br gustavoqfh% 40yahoo.com.br gustavoqfh% 40yahoo.com.brescreveu: Boa Tarde, Tenho que fazer uma procedure/função que deve retornar uma quantidade de linhas de uma determinada tabela após algumas restrições aplicadas. Teria então que: 1) Ler as linhas de uma tabela de acordo com determinados parâmetros; 2) APlicar restrições nessas linhas buscadas e refinar mais a busca. Não posso fazer esse passo no select, pois envolve cálculos e selects em outras tabelas - isso é feito através de uma função. 3) Retornar as linhas que passaram pelo refinamento do passo 2. Inicialmente montei uma procedure retornando um ref cursor com o select inicial. Funcionou corretamente e a pessoa que está mostrando o resultado em uma tela está conseguindo utilizar. O resultado é mostrado em uma página da internet utilizando Java. Porém, agora devo aplicar os filtros nessas primeiras linhas buscadas e retornar somente as que ficarem. Posso manter essa estrutura do Ref Cursor para esse segundo passo?
[oracle_br] Ajuda !! Parametros de Memória 11G
Bom dia colegas, tudo tranquilo ? Estou com algumas pequenas dúvidas sobre parametros de memória no 11G que não haviam no 10G e sobre a questão do gerenciamento automatico de memoria.. Os parametros MEMORY_TARGET e MEMORY_MAX_TARGET foram introduzidos no primeiro release do 11G e não estou sabendo configura-los da forma correta, mediante os parametros SGA_MAX_SIZE e SGA_TARGET. Qual seria a diferença entre eles ? Outra dúvida é quanto o gerenciamento automático de memória. Me recordo de alguns foruns gringos (e até mesmo do TOM), onde relatavam problemas nesta feature para o gerenciamento de SGA gigantes...esta dificuldade continua no 11.1.0.6 ou ja foi superada ? Alguem teria algum relato sobre isso ? Abraços e obrigado
[oracle_br] SPFILE no ASM - Oracle RAC - Melhor opção ?
Bom dia !! Tenho uma dúvida sobre a administração de spfile em RAC. Em alguns testes percebi que poderia ter um spfile para cada nó que eu estiver trabalhando, na mesma localização .../dbs da uma singles instance (esta infomração para é nova pois pensei que trabalhando com RAC, eu só poderia ter um spfile compartilahdoi). No meu entendimento, ter dois spfile apesar de dificultar um pouco o gerenciamento das instancias, pq para qualquer alteração, teríamos que aplicar em todos os nós, poderia trazer um pouco mais de tranquilidade no que tange a alterações específicas...posso alocar mais memória para uma, doq ue para outra ou adicionar mais buffer cache para uma e etc... Seria isso mesmo ? Na questão do restart automatico das instancias, teria algum problema em termos spfiles separados ?
[oracle_br] Re: SPFILE no ASM - Oracle RAC - Melhor opção ?
Oi : então, na verdade a grande sacada do spfile é que, como vc já deve ter visto, nele a sintaxe para os parâmetros evoluiu para : instância.nomedoparametro=valordesejado aonde vc pode colocar um * para indicar todas... Assim, se vc tiver no seu spfile uma entrada, digamos : *.OPEN_CURSORS=500 isso indica que em toas as instâncias do RAC vc quer ter esse setting. E se ca instância PROD1, digamos, vc quer ter um valor diferente, 1000 digamos ? No problem, vc ** TOTALMENTE **, ** ABSOLUTAMENTE NÃo Precisa ** ter um spfile separado pra PROD1, nesse mesmo único spfile vc inclui : prod1.OPEN_CURSORS=1000 Blz No fuss, no muss, sem problema nem esquentação de cuca O manual Oracle® Real Application Clusters Administration and Deployment Guide no cap. 3 Administering Database Instances and Cluster Databases discute isso... A minha resposta então é : sim, tecnicamente é possível vc ter spfiles (ou mesmo initfiles) separados para cada instância do RAC, mas isso ** não é exigido ** isso de forma alguma para que vc tenha controle sobre params individuais em instâncias individuais... Dada a maior complexidade administrativa (serão vários arqs pra controlar/backupear/administrar) , SEM vc receber uma vantagem correspondente compensadora, eu não recomendaria isso, não... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, candiurudba candiuru...@... escreveu Bom dia !! Tenho uma dúvida sobre a administração de spfile em RAC. Em alguns testes percebi que poderia ter um spfile para cada nó que eu estiver trabalhando, na mesma localização .../dbs da uma singles instance (esta infomração para é nova pois pensei que trabalhando com RAC, eu só poderia ter um spfile compartilahdoi). No meu entendimento, ter dois spfile apesar de dificultar um pouco o gerenciamento das instancias, pq para qualquer alteração, teríamos que aplicar em todos os nós, poderia trazer um pouco mais de tranquilidade no que tange a alterações específicas...posso alocar mais memória para uma, doq ue para outra ou adicionar mais buffer cache para uma e etc... Seria isso mesmo ? Na questão do restart automatico das instancias, teria algum problema em termos spfiles separados ?
[oracle_br] Re: SPFILE no ASM - Oracle RAC - Melhor opção ?
yep, a syntax é : alter system set parametro scope=both sid='instânciadesejada'; não lembro de cabeça se num RAC quando vc informa apenas : alter system set parametro scope=both; ele já assume o * indicando todas as instâncias, mas iirc sim... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, candiurudba candiuru...@... escreveu Mas chiappa... E com relação a alterações de parametros dinamicos...por exemplo, alter system set shared_pool_size=XXX scope=both... Neste caso seria somente especificar qual a instancia queremos alterar, acrescentando sid=xxx1 ou xxx2 na clausula...seria isso ? --- Em oracle_br@yahoogrupos.com.br, José Laurindo jlchiappa@ escreveu Oi : então, na verdade a grande sacada do spfile é que, como vc já deve ter visto, nele a sintaxe para os parâmetros evoluiu para : instância.nomedoparametro=valordesejado aonde vc pode colocar um * para indicar todas... Assim, se vc tiver no seu spfile uma entrada, digamos : *.OPEN_CURSORS=500 isso indica que em toas as instâncias do RAC vc quer ter esse setting. E se ca instância PROD1, digamos, vc quer ter um valor diferente, 1000 digamos ? No problem, vc ** TOTALMENTE **, ** ABSOLUTAMENTE NÃo Precisa ** ter um spfile separado pra PROD1, nesse mesmo único spfile vc inclui : prod1.OPEN_CURSORS=1000 Blz No fuss, no muss, sem problema nem esquentação de cuca O manual Oracle® Real Application Clusters Administration and Deployment Guide no cap. 3 Administering Database Instances and Cluster Databases discute isso... A minha resposta então é : sim, tecnicamente é possível vc ter spfiles (ou mesmo initfiles) separados para cada instância do RAC, mas isso ** não é exigido ** isso de forma alguma para que vc tenha controle sobre params individuais em instâncias individuais... Dada a maior complexidade administrativa (serão vários arqs pra controlar/backupear/administrar) , SEM vc receber uma vantagem correspondente compensadora, eu não recomendaria isso, não... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, candiurudba candiurudba@ escreveu Bom dia !! Tenho uma dúvida sobre a administração de spfile em RAC. Em alguns testes percebi que poderia ter um spfile para cada nó que eu estiver trabalhando, na mesma localização .../dbs da uma singles instance (esta infomração para é nova pois pensei que trabalhando com RAC, eu só poderia ter um spfile compartilahdoi). No meu entendimento, ter dois spfile apesar de dificultar um pouco o gerenciamento das instancias, pq para qualquer alteração, teríamos que aplicar em todos os nós, poderia trazer um pouco mais de tranquilidade no que tange a alterações específicas...posso alocar mais memória para uma, doq ue para outra ou adicionar mais buffer cache para uma e etc... Seria isso mesmo ? Na questão do restart automatico das instancias, teria algum problema em termos spfiles separados ?
[oracle_br] Comparativo Oracle X Cache
Ola, Alguem tem algum documento comparando o Banco de Dados Oracle X Cache. Ou qualquer coisa a respeito. att. Raphael
[oracle_br] Marco Aurélio Gandra Ribeiro q uer manter contato no LinkedIn
LinkedIn Marco Aurélio Gandra Ribeiro requested to add you as a connection on LinkedIn: -- Carmine Andre, Eu gostaria de adicioná-lo(a) à minha rede profissional no LinkedIn. - Marco Aurélio Gandra Ribeiro Accept invitation from Marco Aurélio Gandra Ribeiro http://www.linkedin.com/e/8hv7ww-gdm0w92u-z/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I24893712_9/6lColZJrmZznQNdhjRQnOpBtn9QfmhBt71BoSd1p65Lr6lOfPBvcz4TcPAUd399bR5ntkENhmJEbP8Udz0TdzAOdz4LrCBxbOYWrSlI/EML_comm_afe/ View invitation from Marco Aurélio Gandra Ribeiro http://www.linkedin.com/e/8hv7ww-gdm0w92u-z/hWdLbEQovS9WxUla2SAnQ1WHcdNiQNfnEPkab4_YW6T/blk/I24893712_9/elYOcjsPejwQcAALqnpPbOYWrSlI/svi/ -- DID YOU KNOW LinkedIn can help you find the right service providers using recommendations from your trusted network? Using LinkedIn Services, you can take the risky guesswork out of selecting service providers by reading the recommendations of credible, trustworthy members of your network. http://www.linkedin.com/e/8hv7ww-gdm0w92u-z/svp/inv-25/ -- (c) 2010, LinkedIn Corporation [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Ajuda !! Parametros de Memória 11G
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Não cheguei a mexer a fundo nisso, mas acredito que isso já lhe ajude a entender melhor http://www.dba-oracle.com/oracle11g/oracle_11g_memory_target_parameter.htm Erick T. sysadmin www.geekbr.com.br skype:dbflush?chat Yahoo!: ymsgr:sendIM?geekbr gTalk: xmpp:gee...@jabber.org ICQ/AIM: aim:GoIM?screenname=70596884 MSN: msnim:chat?contact=blackcatdbfl...@hotmail.com - - -BEGIN GEEK CODE BLOCK- GCM/C d- s-:--- a- C+++ ULB+++(+)$ P- E--- W+++(--)@$ N++ o--@ k! w-- O!-- M+ PS+ PE-Y!@ tv++ b+++ DI+@ G++ e* h+ r+ z+* - - --END GEEK CODE BLOCK-- Em 02-09-2010 07:58, ammorrimm escreveu: Bom dia colegas, tudo tranquilo ? Estou com algumas pequenas dúvidas sobre parametros de memória no 11G que não haviam no 10G e sobre a questão do gerenciamento automatico de memoria.. Os parametros MEMORY_TARGET e MEMORY_MAX_TARGET foram introduzidos no primeiro release do 11G e não estou sabendo configura-los da forma correta, mediante os parametros SGA_MAX_SIZE e SGA_TARGET. Qual seria a diferença entre eles ? Outra dúvida é quanto o gerenciamento automático de memória. Me recordo de alguns foruns gringos (e até mesmo do TOM), onde relatavam problemas nesta feature para o gerenciamento de SGA gigantes...esta dificuldade continua no 11.1.0.6 ou ja foi superada ? Alguem teria algum relato sobre isso ? Abraços e obrigado -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJMgBBdAAoJEDX7/pST8RnijCMP/3Ux69hlE/zwtfRIOtJV5mPc ovzCT42C5hrKOC5ITg9K0CH8x/+hO5/tp7MqwR2JSEjSJE4nRYizI9rz67Y20lMA 4HAixhTvb9kpyhfy2UkT/6+maJsEcHvK93GuKEya6cL3ZgckzMRWQAoDMHbgNNnl X73Nrqz3abeEU3qqB8duNQZeg+aIFzbm+8YfGsfxxb7t9afFLgiQ7XrQbxtxHuow iWVmTRNqjS9DSUdN+49DoGf3wnGWPpiBwU94ZWkwixc7bczRsootMBtjsGlcV5Hd haM692p82SdFogAJEeZbyFOQdk5Hw5IsprAJI9BYgl2rx89bZCd3QXQHAVq3nyoq IiODS/e/yhpHF2d5pIWeV31i8pJMu3DUTBMknIhmrA/IU2Lz46FQFsBYTizjhEAV bB6xP5R8puBMRoIXA9R2zu2jOOKOKvepRozdsnIIRdcqxvt+6aGtizoFiOJGjulW WnsWB4j96j3W00lfo+Koep9OWJp1m70CJBvEpmVWqiAoSwrYfXDGFYDUCjoA12sE 18V1+7XzVTtAUKTwdVugBWK3BcvPnkHUzUC1l33MLVyOoWytqu1Ljn/oiHr+c6Uc YT4L5oMZwAun70r1nbVDM/bZv8txPpK5re47y6VCZilZOdekLSwFQkdzJSaiNdk8 Pqg7g9F388NSIS1Hb89C =XuCR -END PGP SIGNATURE-
Re: [oracle_br] Ajuda !! Parametros de Memória 11G
Meu caro, No 11G, com a introdução do MEMORY_TARGET e MEMORY_MAX_TARGET, o Oracle passa a gerenciar de forma dinâmica tanto a SGA quanto a PGA juntas. Então, se você poem MEMORY_TARGET=2000M, inicialmente o Oracle pode distribuir 1300M para SGA e 700M para PGA. Se em um certo momento o comportamento do banco muda, o Oracle pode dinâmicamente roubar memória de uma área para entregar para a outra, como 1500M para SGA e 500M para PGA. A Oracle alega que isso aumenta a eficiência do banco já que o Oracle saberia distribuir isso melhor que um DBA, além de, reduzir trabalho do cara de ter que mudar os parâmetros em determinados momentos, como por exemplo para rodar cargas ou relatórios na madrugada. Claro, que isso nem sempre funciona... em um sistema ERP por exemplo a cagada pode ser grande... Sou novo na área, mas me deparei uma vez com um ERP que se quer funcionava com o SGA_TARGET setado, tinha que definir área por área como mandava o figurino, senão... Isso aí cara, espero ter ajudado. Se eu disse alguma besteira por favor me corrijam. 2010/9/2 Erick Tostes er...@geekbr.com.br -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Não cheguei a mexer a fundo nisso, mas acredito que isso já lhe ajude a entender melhor http://www.dba-oracle.com/oracle11g/oracle_11g_memory_target_parameter.htm Erick T. sysadmin www.geekbr.com.br skype:dbflush?chat Yahoo!: ymsgr:sendIM?geekbr gTalk: xmpp:gee...@jabber.org geekbr%40jabber.org ICQ/AIM: aim:GoIM?screenname=70596884 MSN: msnim:chat?contact=blackcatdbfl...@hotmail.comchat%3Fcontact%3Dblackcatdbflush%40hotmail.com - - -BEGIN GEEK CODE BLOCK- GCM/C d- s-:--- a- C+++ ULB+++(+)$ P- E--- W+++(--)@$ N++ o--@ k! w-- O!-- M+ PS+ PE-Y!@ tv++ b+++ DI+@ G++ e* h+ r+ z+* - - --END GEEK CODE BLOCK-- Em 02-09-2010 07:58, ammorrimm escreveu: Bom dia colegas, tudo tranquilo ? Estou com algumas pequenas dúvidas sobre parametros de memória no 11G que não haviam no 10G e sobre a questão do gerenciamento automatico de memoria.. Os parametros MEMORY_TARGET e MEMORY_MAX_TARGET foram introduzidos no primeiro release do 11G e não estou sabendo configura-los da forma correta, mediante os parametros SGA_MAX_SIZE e SGA_TARGET. Qual seria a diferença entre eles ? Outra dúvida é quanto o gerenciamento automático de memória. Me recordo de alguns foruns gringos (e até mesmo do TOM), onde relatavam problemas nesta feature para o gerenciamento de SGA gigantes...esta dificuldade continua no 11.1.0.6 ou ja foi superada ? Alguem teria algum relato sobre isso ? Abraços e obrigado -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQIcBAEBAgAGBQJMgBBdAAoJEDX7/pST8RnijCMP/3Ux69hlE/zwtfRIOtJV5mPc ovzCT42C5hrKOC5ITg9K0CH8x/+hO5/tp7MqwR2JSEjSJE4nRYizI9rz67Y20lMA 4HAixhTvb9kpyhfy2UkT/6+maJsEcHvK93GuKEya6cL3ZgckzMRWQAoDMHbgNNnl X73Nrqz3abeEU3qqB8duNQZeg+aIFzbm+8YfGsfxxb7t9afFLgiQ7XrQbxtxHuow iWVmTRNqjS9DSUdN+49DoGf3wnGWPpiBwU94ZWkwixc7bczRsootMBtjsGlcV5Hd haM692p82SdFogAJEeZbyFOQdk5Hw5IsprAJI9BYgl2rx89bZCd3QXQHAVq3nyoq IiODS/e/yhpHF2d5pIWeV31i8pJMu3DUTBMknIhmrA/IU2Lz46FQFsBYTizjhEAV bB6xP5R8puBMRoIXA9R2zu2jOOKOKvepRozdsnIIRdcqxvt+6aGtizoFiOJGjulW WnsWB4j96j3W00lfo+Koep9OWJp1m70CJBvEpmVWqiAoSwrYfXDGFYDUCjoA12sE 18V1+7XzVTtAUKTwdVugBWK3BcvPnkHUzUC1l33MLVyOoWytqu1Ljn/oiHr+c6Uc YT4L5oMZwAun70r1nbVDM/bZv8txPpK5re47y6VCZilZOdekLSwFQkdzJSaiNdk8 Pqg7g9F388NSIS1Hb89C =XuCR -END PGP SIGNATURE- -- Hevandro Veiga Oracle Certified Associate 11g [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/
Re: [oracle_br] Problema em Parametro de Procedure
Gustavo A maneira mais fácil é através de SQL dinâmico. Ou seja, todo o comando será uma string a ser interpretada em tempo de execução. Procure pelo comando execute immediate. Dentro da procedure ficaria +/- assim: execute immediate select blá, blá, blá from sua_tabela where campo in ( || p_lista || ); OBS.: O maior problema é que isso não fica muito seguro. Podem ocorrer erro em tempo de execução ou, pior, um ataque por SQL injection. Para evitar esses problemas seria importante fazer uma **validação** desse parâmetro (para conferir se não está fora do padrão esperado). [ ] André Em 2 de setembro de 2010 15:31, Gustavo Queiroz gustavo...@yahoo.com.brescreveu: Pessoal, Tenho uma procedure que deverá possuir um parametro que é uma lista de números, por exemplo: 1, 2, 3, 4. Essa lista deverá ser usada em uma consulta da procedure na clausula Where onde um determinado campo deverá ter um desses valores, utilando o IN. Essa quantidade de números da lista pode ser variável, não tendo uma quantidade fixa ou padrão. Como posso fazer para ter que passar esse valor para procedure? Tentei passar como string e depois jogar direto, mas não entende como número. Obgrigado, Gustavo [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Re: Problema em Parametro de Procedure
http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:210612357425 e http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:110612348061#3653068157543 são duas threads Clássicas sobre o assunto, onde são debatidas as muitas técnicas possívels, mas ** DE FORMA ALGUMA ** eu uso 'SQL dinâmico' e 'fácil' na mesma frase, a não ser para dizer o quanto são conceitos incompatíveis... Sim, além da segurança também a performance pode ser Seriamente afetada por SQL dinâmico, muitas vezes ele é um pé pra se debugar, eu FUJO desse cara o quanto der No caso em questão , imho o Realmente Fácil é vc ter uma tabela temporária (uma Global temporary Table, talvez) com uma coluna (numerica, já que são números) onde vc enfia os parâmetros , aí o SQL passou a ser fixo : SELECT nnn FROM tabela WHERE coluna in (select colunacomoparametro FROM tabelatemp); pronto, mais fácil que isso não tem... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Andre Santos andre.psantos...@... escreveu Gustavo A maneira mais fácil é através de SQL dinâmico. Ou seja, todo o comando será uma string a ser interpretada em tempo de execução. Procure pelo comando execute immediate. Dentro da procedure ficaria +/- assim: execute immediate select blá, blá, blá from sua_tabela where campo in ( || p_lista || ); OBS.: O maior problema é que isso não fica muito seguro. Podem ocorrer erro em tempo de execução ou, pior, um ataque por SQL injection. Para evitar esses problemas seria importante fazer uma **validação** desse parâmetro (para conferir se não está fora do padrão esperado). [ ] André Em 2 de setembro de 2010 15:31, Gustavo Queiroz gustavo...@...escreveu: Pessoal, Tenho uma procedure que deverá possuir um parametro que é uma lista de números, por exemplo: 1, 2, 3, 4. Essa lista deverá ser usada em uma consulta da procedure na clausula Where onde um determinado campo deverá ter um desses valores, utilando o IN. Essa quantidade de números da lista pode ser variável, não tendo uma quantidade fixa ou padrão. Como posso fazer para ter que passar esse valor para procedure? Tentei passar como string e depois jogar direto, mas não entende como número. Obgrigado, Gustavo [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Problema em Parametro de Procedure
Colega, ** evidente ** que o bd Oracle por si só não consegue converter para NUMBER uma string tipo : 1,2,3,4 pois NUMBER pra ele, como documentado, é info composta por DÌGITOS NUMÉRICOS e vc tem separadores aí (vírgula), o que traz à baila uma OUTRA questão : uma param NUMBER é ESCALAR, pode guardar UM ÚNICO VALOR... Vc até poderia na procedure receber a string , separar os valores que estão nela ( http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:2189860818012 tem um exemplo, é basicamente usar as funções de string para processar os 'pedaços' que vc recebeu) , OU ainda vc poderia ter um array como parâmetro da procedure ( http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:712625135727#31840580327095 fala sobre) MAS eu realmente aconselharia um approach mais simples, low-tech : tenha uma tabela de trabalho com os valores preenchida antes de chamar a proc e nela manda um WHERE coluna in (select from tabelatrab) ; , e be happy... Há outras possibilidades (veja na outra msg desta thread aqui do fórum que eu cito uns links sobre elas) , mas imho a filosofia K.I.S.S. (mantenha as coisas Simples) rules... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Gustavo Queiroz gustavo...@... escreveu Pessoal, Tenho uma procedure que deverá possuir um parametro que é uma lista de números, por exemplo: 1, 2, 3, 4. Essa lista deverá ser usada em uma consulta da procedure na clausula Where onde um determinado campo deverá ter um desses valores, utilando o IN. Essa quantidade de números da lista pode ser variável, não tendo uma quantidade fixa ou padrão. Como posso fazer para ter que passar esse valor para procedure? Tentei passar como string e depois jogar direto, mas não entende como número. Obgrigado, Gustavo
Re: [oracle_br] Re: Problema em Parametro de Procedure
Mestre Chiappa Conheço essas threads do AskTom. Porém, como têm muitos artifícios técnicos, podem enrolar (ou assustar) quem está iniciando. Eu não chegaria a ser tão radical a ponto de dizer nunca usaria... (mas claro que respeito sua opinião). No caso específico, caso usasse SQL dinâmico, o mais importante seria validar a string de parâmetro (com a lista). O essencial é saber dos riscos... e foi isso que quis enfatizar. ;) Ah! A a solução de tabela temporária, se for viável no contexto dele, seria melhor mesmo (e simples). [ ] André Em 2 de setembro de 2010 22:19, José Laurindo jlchia...@yahoo.com.brescreveu: http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:210612357425e http://asktom.oracle.com/pls/apex/f?p=100:11:0P11_QUESTION_ID:110612348061#3653068157543são duas threads Clássicas sobre o assunto, onde são debatidas as muitas técnicas possívels, mas ** DE FORMA ALGUMA ** eu uso 'SQL dinâmico' e 'fácil' na mesma frase, a não ser para dizer o quanto são conceitos incompatíveis... Sim, além da segurança também a performance pode ser Seriamente afetada por SQL dinâmico, muitas vezes ele é um pé pra se debugar, eu FUJO desse cara o quanto der No caso em questão , imho o Realmente Fácil é vc ter uma tabela temporária (uma Global temporary Table, talvez) com uma coluna (numerica, já que são números) onde vc enfia os parâmetros , aí o SQL passou a ser fixo : SELECT nnn FROM tabela WHERE coluna in (select colunacomoparametro FROM tabelatemp); pronto, mais fácil que isso não tem... []s Chiappa --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Andre Santos andre.psantos...@... escreveu Gustavo A maneira mais fácil é através de SQL dinâmico. Ou seja, todo o comando será uma string a ser interpretada em tempo de execução. Procure pelo comando execute immediate. Dentro da procedure ficaria +/- assim: execute immediate select blá, blá, blá from sua_tabela where campo in ( || p_lista || ); OBS.: O maior problema é que isso não fica muito seguro. Podem ocorrer erro em tempo de execução ou, pior, um ataque por SQL injection. Para evitar esses problemas seria importante fazer uma **validação** desse parâmetro (para conferir se não está fora do padrão esperado). [ ] André Em 2 de setembro de 2010 15:31, Gustavo Queiroz gustavo...@...escreveu: Pessoal, Tenho uma procedure que deverá possuir um parametro que é uma lista de números, por exemplo: 1, 2, 3, 4. Essa lista deverá ser usada em uma consulta da procedure na clausula Where onde um determinado campo deverá ter um desses valores, utilando o IN. Essa quantidade de números da lista pode ser variável, não tendo uma quantidade fixa ou padrão. Como posso fazer para ter que passar esse valor para procedure? Tentei passar como string e depois jogar direto, mas não entende como número. Obgrigado, Gustavo [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ -- Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ * Para sair deste grupo, envie um e-mail para: oracle_br-unsubscr...@yahoogrupos.com.br * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html