Re: [oracle_br] Re: Function - PL/SQL
Então galera... Negócio é o seguinte... Ao executar a função, normalmente, utilizando a tabela DUAL para isso, eu tenho que mencionar, ao passar o parâmetro, o valor entre apóstrofes, pois o datatype é do tipo varchar2, conforme eu falei... Quanto a mencionar somente a variável (sem apóstrofes) eu já tinha feito isso, porém não estava dando certo (ver emails anteriores)... Ressalto também que a chamada da func a partir da proc está sendo feita em ambiente sqlplus o q tem dificultado demasiadamente a questão, já que, estou executando uma proc q faz a atualização de um determinado dado na tabela e a func só serve pra validar se o dado a ser atualizado existe ou não... E, toda vez q executo a proc, eu tenho como retorno a saída de erro NÃO EXISTE O DEPARTAMENTO tal(parâmetro passado)... E o dado não atualiza, ou seja, fica como se o retorno da func fosse sempre FALSE, e não é o caso, já que estou fazendo testes e o dado consta na tabela... Entretanto, utilizando um outro ambiente, no caso, PL/SQL Developer, executei a proc normalmente e, a partir dos parâmetros passados, a proc rodou normalmente e funcionou normalmente também a func... Não sou muito de desistir e por isso estou mandando os dados da tabela em que estou aplicando a proc e a func para que vocês possam efetuar os testes também com vcs... Os dados são: CD_DEPTONM_DEPTOCD_GERENTE CD_DEPTO_CTB A00 DIRETORIA DA EMPRESA 10 B01 ASSESSORIA 20 A00 C01 CENTRO DE INFORMACAO 30 A00 D01 DIRETORIA DE SISTEMAS A00 D11 GERENCIA DE SISTEMAS COMERCIAIS 60 D01 D21 GERENCIA DE SISTEMAS ADMINISTRATIVOS 70 D01 E01 DIRETORIA DE SUPORTE/PRODUCAO 50 A00 E11 OPERACAO 90 E01 E21 SUPORTE DE SOFTWARE 100 E01 Abaixo a descrição da tabela DEPTO: COLUNAS DATATYPE NULLABLE? CD_DEPTO CHAR(3) N NM_DEPTO VARCHAR2(40) Y CD_GERENTE NUMBER(5) Y CD_DEPTO_CTB CHAR(3) Y É isso pessoal... Qualquer novidade, estou por aqui... Obrigado a todos! Matheus Malta - Original Message - From: jlchiappa To: oracle_br@yahoogrupos.com.br Sent: Wednesday, November 18, 2009 11:27 PM Subject: [oracle_br] Re: Function - PL/SQL Então : > > Sendo bem sincero não consegui identificar o erro da proc ou da func, a meu > entender a chamada da func está correta, é ** claro ** que não está, veja lá a linha : > v_ver := fn_verifica_depto(upper('v_cdepto')); no PL/SQL as aspas simples indicam uma STRING, um conjunto FIXO de caracteres, então o que ele está passando como argumento é uma STRING composta pelas letras/caracteres V, _, , C, D, E, P, T, O Imagino que NÂO É isso que ele queria, ele queria se referenciar ao VALOR da variável V_CDEPTO, a na sintaxe do PL/SQL pra isso basta citar o nome da variável, *** SEM *** aspas algumas, assim : v_ver := fn_verifica_depto(upper(v_cdepto)); ok ? SE a variável v_cdepto for de datatype/tamanho apropriado ao definido no parâmetro da função, não tem por que não funcionar em se usando a sintaxe correta... []s Chiappa [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: Function - PL/SQL
Então : > > Sendo bem sincero não consegui identificar o erro da proc ou da func, a meu > entender a chamada da func está correta, é ** claro ** que não está, veja lá a linha : > v_ver := fn_verifica_depto(upper('v_cdepto')); no PL/SQL as aspas simples indicam uma STRING, um conjunto FIXO de caracteres, então o que ele está passando como argumento é uma STRING composta pelas letras/caracteres V, _, , C, D, E, P, T, O Imagino que NÂO É isso que ele queria, ele queria se referenciar ao VALOR da variável V_CDEPTO, a na sintaxe do PL/SQL pra isso basta citar o nome da variável, *** SEM *** aspas algumas, assim : v_ver := fn_verifica_depto(upper(v_cdepto)); ok ? SE a variável v_cdepto for de datatype/tamanho apropriado ao definido no parâmetro da função, não tem por que não funcionar em se usando a sintaxe correta... []s Chiappa
Re: Res: Res: Res: [oracle_br] Tuning de Querys
Eu tenho esse, é bom mas ele Não supre a necessidade sozinho : por exemplo, uma parte Importante do Tuning de SQL muitas vezes é re-escrita usando-se built-ins do banco (como Analytics, ou recursos internos como WITH clause, in-line, etc), o livro é um tanto omisso nesse sentido... Da mesma forma, outro ponto Crucial do Tuning de SQLs é avaliação do Método de join em uso (quase sempre os SQLs complexos em análise vão ter JOINs), ele nada fala a respeito E num ponto final, OBRIGATORIAMENTE na versão 10g e acima vai se estar rodando o SQL em CBO, o livro é Omisso sobre CBO Assim sendo Não Tem Jeito, o colega q perguntou VAI TER QUE adquirir e ler vários : além do citado, ele precisará do "Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions", e do "Effective Oracle by Design" (ambos de Thomas Kyte) pros built-ins, do "Oracle SQL High-Performance Tuning (2nd Edition)", de Guy Harrison, pra métodos de Join, E do "Cost-Based Oracle Fundamentals" de Jonathan Lewis para o CBO... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Caio Spadafora escreveu > > Rodrigo, > > Ainda não li esse, vou dar uma pesquisada, valeu pela dica. > > Matheus, > > Se quiser enviar a(s) consulta(s), por favor. > > Atenciosamente, > Caio Spadafora. > > > > > > De: Rodrigo Mufalani > Para: oracle_br@yahoogrupos.com.br > Enviadas: Quarta-feira, 18 de Novembro de 2009 17:57:58 > Assunto: Re: Res: Res: [oracle_br] Tuning de Querys > > > > Caio, > > Um dos melhores que eu conheço é o "Optimizing Oracle Performance" Cary > Millsap. > > Até no ENPO-BR o gary goodman sorteou um livro desses. Ele abora SQL > tuning. O curso da Oracle university "SQL tuning" eu achei muito bom > também. De repente tem em cd self study, é mais barato, porém não conta > como Hands-on para a prova. > > Atenciosamente, > > Rodrigo Mufalani > DBA - OCP 10g & 11g +RAC > Oracle ACE Member > www.mrdba.com. br/mufalani/ > mufal...@mrdba. com.br > > Mas em sua maioria todos possuem capítulos destinados a tuning de comandos > SQL, que teoricamente é a última área de abordagem de tuning (nunca se > começa o tuning pelo comando SQL, na maioria das metodologias) . > > De qualquer maneira ha muito tempo lembro de ter visto um treinamento, se > não me engano, da Oracle que se chamava Tuning The Schema. Era um > treinamento que focava no otimizador, planos de execução, algoritmos de > join, IOT, cluster, tipos de índice, hints, stored outline, tkprof. Acho > dificil ter muito mais coisa para se estudar de tuning de consulta do que > isso. Acho que era um curso online. > > Se precisar de ajuda para otimizar alguma consulta em específico pode > postar a mesma aqui, de preferência com o plano de execução, para > tentarmos te ajudar. > > Atenciosamente, > Caio Spadafora. > > _ _ __ > De: Hevandro Veiga > Para: oracle...@yahoogrup os.com.br > Enviadas: Quarta-feira, 18 de Novembro de 2009 0:58:10 > Assunto: Re: Res: [oracle_br] Tuning de Querys > > 2009/11/17 darcio XX > > > > > > > Esses livros parecem ser bom mais sao muito voltado para o banco. Estou > > precisando de algo mais focado a Query... > > > > Abraço > > > > _ _ __ > > De: Caio Spadafora > > > > > > > > > Para: oracle...@yahoogrup os.com.br > > Enviadas: Segunda-feira, 16 de Novembro de 2009 15:30:44 > > Assunto: Res: [oracle_br] Tuning de Querys > > > > > > Eu particularmente não gosto muito da abordagem do Burleson, ele é muito > > conhecido por consolidar a documentação da Oracle, tenho o livro dele de > > Statspack muito por não ter outras opções e para dar o benefício da > > dúvida, > > mas não gostei muito, muito do livro fica focado nos hit/misses e no > > script > > access.sql. > > > > Prefiro o Tom Kyte e o Craig (http://www.training .orapub.com/ ), apesar > > de > > se não me engano o Craig trabalhar com o Burleson. Uma boa leitura > > apesar de > > focada no 8i é o livro do Steve Adams (http://oreilly. com/catalog/ > > 9781565925984) . > > > > Bom proveito. > > Atenciosamente, > > Caio Spadafora. > > > > _ _ __ > > De: Willian Fernando Frasson > > Para: oracle...@yahoogrup os.com.br > > > > Enviadas: Sábado, 14 de Novembro de 2009 16:07:28 > > Assunto: Re: [oracle_br] Tuning de Querys > > > > Procure pelo livro do burleson, The Definitive Tuning > > esse vai te ajudar em mta coisa.. > > > > - Original Message - > > From: darcio XX > > To: oracle...@yahoogrup os.com.br > > Sent: Saturday, November 14, 2009 3:45 PM > > Subject: [oracle_br] Tuning de Querys > > > > Alguem conhece algum livro "apostila, post..." bom para tuning query? > > > > _ _ _ _ _ _ > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > http://br.maisbusca dos.yahoo. com > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -
Re: Res: Res: [oracle_br] Tuning de Querys
Sei que não é muito correto mas acabei de fazer o download dele do 4shared. Atenciosamente, Marcos Fontana 2009/11/18 Caio Spadafora > > > Rodrigo, > > Ainda não li esse, vou dar uma pesquisada, valeu pela dica. > > Matheus, > > Se quiser enviar a(s) consulta(s), por favor. > > Atenciosamente, > Caio Spadafora. > > > De: Rodrigo Mufalani > > > Para: oracle_br@yahoogrupos.com.br > Enviadas: Quarta-feira, 18 de Novembro de 2009 17:57:58 > Assunto: Re: Res: Res: [oracle_br] Tuning de Querys > > > Caio, > > Um dos melhores que eu conheço é o "Optimizing Oracle Performance" Cary > Millsap. > > Até no ENPO-BR o gary goodman sorteou um livro desses. Ele abora SQL > tuning. O curso da Oracle university "SQL tuning" eu achei muito bom > também. De repente tem em cd self study, é mais barato, porém não conta > como Hands-on para a prova. > > Atenciosamente, > > Rodrigo Mufalani > DBA - OCP 10g & 11g +RAC > Oracle ACE Member > www.mrdba.com. br/mufalani/ > mufal...@mrdba. com.br > > Mas em sua maioria todos possuem capítulos destinados a tuning de comandos > SQL, que teoricamente é a última área de abordagem de tuning (nunca se > começa o tuning pelo comando SQL, na maioria das metodologias) . > > De qualquer maneira ha muito tempo lembro de ter visto um treinamento, se > não me engano, da Oracle que se chamava Tuning The Schema. Era um > treinamento que focava no otimizador, planos de execução, algoritmos de > join, IOT, cluster, tipos de índice, hints, stored outline, tkprof. Acho > dificil ter muito mais coisa para se estudar de tuning de consulta do que > isso. Acho que era um curso online. > > Se precisar de ajuda para otimizar alguma consulta em específico pode > postar a mesma aqui, de preferência com o plano de execução, para > tentarmos te ajudar. > > Atenciosamente, > Caio Spadafora. > > _ _ __ > De: Hevandro Veiga > Para: oracle...@yahoogrup os.com.br > Enviadas: Quarta-feira, 18 de Novembro de 2009 0:58:10 > Assunto: Re: Res: [oracle_br] Tuning de Querys > > 2009/11/17 darcio XX > > > > > > > Esses livros parecem ser bom mais sao muito voltado para o banco. Estou > > precisando de algo mais focado a Query... > > > > Abraço > > > > _ _ __ > > De: Caio Spadafora > > > > > > > > > Para: oracle...@yahoogrup os.com.br > > > Enviadas: Segunda-feira, 16 de Novembro de 2009 15:30:44 > > Assunto: Res: [oracle_br] Tuning de Querys > > > > > > Eu particularmente não gosto muito da abordagem do Burleson, ele é muito > > conhecido por consolidar a documentação da Oracle, tenho o livro dele de > > Statspack muito por não ter outras opções e para dar o benefício da > > dúvida, > > mas não gostei muito, muito do livro fica focado nos hit/misses e no > > script > > access.sql. > > > > Prefiro o Tom Kyte e o Craig (http://www.training .orapub.com/ ), apesar > > de > > se não me engano o Craig trabalhar com o Burleson. Uma boa leitura > > apesar de > > focada no 8i é o livro do Steve Adams (http://oreilly. com/catalog/ > > 9781565925984) . > > > > Bom proveito. > > Atenciosamente, > > Caio Spadafora. > > > > _ _ __ > > De: Willian Fernando Frasson > > Para: oracle...@yahoogrup os.com.br > > > > Enviadas: Sábado, 14 de Novembro de 2009 16:07:28 > > Assunto: Re: [oracle_br] Tuning de Querys > > > > Procure pelo livro do burleson, The Definitive Tuning > > esse vai te ajudar em mta coisa.. > > > > - Original Message - > > From: darcio XX > > To: oracle...@yahoogrup os.com.br > > Sent: Saturday, November 14, 2009 3:45 PM > > Subject: [oracle_br] Tuning de Querys > > > > Alguem conhece algum livro "apostila, post..." bom para tuning query? > > > > _ _ _ _ _ _ > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > http://br.maisbusca dos.yahoo. com > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > - - - - - - > > > > O Banco de Dados de Vírus interno expirou. > > Verificado por AVG - http://www.avgbrasi l.com.br > > Versão: 8.0.233 / Banco de dados de vírus: 270.10.16/1926 - Data de > > Lançamento: 30/1/2009 17:31 > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > _ _ _ _ _ _ > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > http://br.maisbusca dos.yahoo. com > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > _ _ _ _ _ _ > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > http://br.maisbusca dos.yahoo. com > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > - - -- > > - - -
Res: Res: Res: [oracle_br] Tuning de Querys
Rodrigo, Ainda não li esse, vou dar uma pesquisada, valeu pela dica. Matheus, Se quiser enviar a(s) consulta(s), por favor. Atenciosamente, Caio Spadafora. De: Rodrigo Mufalani Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 18 de Novembro de 2009 17:57:58 Assunto: Re: Res: Res: [oracle_br] Tuning de Querys Caio, Um dos melhores que eu conheço é o "Optimizing Oracle Performance" Cary Millsap. Até no ENPO-BR o gary goodman sorteou um livro desses. Ele abora SQL tuning. O curso da Oracle university "SQL tuning" eu achei muito bom também. De repente tem em cd self study, é mais barato, porém não conta como Hands-on para a prova. Atenciosamente, Rodrigo Mufalani DBA - OCP 10g & 11g +RAC Oracle ACE Member www.mrdba.com. br/mufalani/ mufal...@mrdba. com.br Mas em sua maioria todos possuem capítulos destinados a tuning de comandos SQL, que teoricamente é a última área de abordagem de tuning (nunca se começa o tuning pelo comando SQL, na maioria das metodologias) . De qualquer maneira ha muito tempo lembro de ter visto um treinamento, se não me engano, da Oracle que se chamava Tuning The Schema. Era um treinamento que focava no otimizador, planos de execução, algoritmos de join, IOT, cluster, tipos de índice, hints, stored outline, tkprof. Acho dificil ter muito mais coisa para se estudar de tuning de consulta do que isso. Acho que era um curso online. Se precisar de ajuda para otimizar alguma consulta em específico pode postar a mesma aqui, de preferência com o plano de execução, para tentarmos te ajudar. Atenciosamente, Caio Spadafora. _ _ __ De: Hevandro Veiga Para: oracle...@yahoogrup os.com.br Enviadas: Quarta-feira, 18 de Novembro de 2009 0:58:10 Assunto: Re: Res: [oracle_br] Tuning de Querys 2009/11/17 darcio XX > > > Esses livros parecem ser bom mais sao muito voltado para o banco. Estou > precisando de algo mais focado a Query... > > Abraço > > _ _ __ > De: Caio Spadafora > > > > > Para: oracle...@yahoogrup os.com.br > Enviadas: Segunda-feira, 16 de Novembro de 2009 15:30:44 > Assunto: Res: [oracle_br] Tuning de Querys > > > Eu particularmente não gosto muito da abordagem do Burleson, ele é muito > conhecido por consolidar a documentação da Oracle, tenho o livro dele de > Statspack muito por não ter outras opções e para dar o benefício da > dúvida, > mas não gostei muito, muito do livro fica focado nos hit/misses e no > script > access.sql. > > Prefiro o Tom Kyte e o Craig (http://www.training .orapub.com/ ), apesar > de > se não me engano o Craig trabalhar com o Burleson. Uma boa leitura > apesar de > focada no 8i é o livro do Steve Adams (http://oreilly. com/catalog/ > 9781565925984) . > > Bom proveito. > Atenciosamente, > Caio Spadafora. > > _ _ __ > De: Willian Fernando Frasson > Para: oracle...@yahoogrup os.com.br > > Enviadas: Sábado, 14 de Novembro de 2009 16:07:28 > Assunto: Re: [oracle_br] Tuning de Querys > > Procure pelo livro do burleson, The Definitive Tuning > esse vai te ajudar em mta coisa.. > > - Original Message - > From: darcio XX > To: oracle...@yahoogrup os.com.br > Sent: Saturday, November 14, 2009 3:45 PM > Subject: [oracle_br] Tuning de Querys > > Alguem conhece algum livro "apostila, post..." bom para tuning query? > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > - - - - - - > > O Banco de Dados de Vírus interno expirou. > Verificado por AVG - http://www.avgbrasi l.com.br > Versão: 8.0.233 / Banco de dados de vírus: 270.10.16/1926 - Data de > Lançamento: 30/1/2009 17:31 > > [As partes desta mensagem que não continham texto foram removidas] > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [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! VI
Re: [oracle_br] Duvida Storage
Acho difícil o Raid6 ter uma performance melhor que o Raid10. Se pensar em Raid10 você vai de cara ter VolumeAtual/2 porém é excelente para aplicações OLTP. Eu não usuária outra configuração. No seu storage atual você tem 4.8T, 2.4T te atende? Caso sim sugiro o Raid10. Atenciosamente, Marcos Fontana 2009/11/18 Sharif - Yahoo > > > Pessoal, Boa Tarde, > > Temos um IBM DS4700 72A com 2 controladores 2GB de memória em cada > controladora e 16 discos de 300Gb FC, gostaria de saber se alguém tem > alguma > experiência ou dica se posso criar um ARRAY só com os 16 discos ou se devo > criar 2 ou mais se isso influenciaria na performance ? > > Configurei RAID5 por enquanto, mas esse storage tem opção de RAID6 alguém > está utilizando ? Tem alguma sugestão ? Li algumas notas na internet > dizendo > que a leitura no RAID6 é um pouco mais rápida e tal mas nenhuma fonte > muito confiável. > > Esse storage é para um database Oracle OLTP. > > Abraços, > > Sharif > > [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
[oracle_br] Duvida Storage
Pessoal, Boa Tarde, Temos um IBM DS4700 72A com 2 controladores 2GB de memória em cada controladora e 16 discos de 300Gb FC, gostaria de saber se alguém tem alguma experiência ou dica se posso criar um ARRAY só com os 16 discos ou se devo criar 2 ou mais se isso influenciaria na performance ? Configurei RAID5 por enquanto, mas esse storage tem opção de RAID6 alguém está utilizando ? Tem alguma sugestão ? Li algumas notas na internet dizendo que a leitura no RAID6 é um pouco mais rápida e tal mas nenhuma fonte muito confiável. Esse storage é para um database Oracle OLTP. Abraços, Sharif [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Function - PL/SQL
Matheus Criei a proc e a func na minha maquina e realmente não existe nenhum problema na execução. Tente executar a proc na sua maquina, os valores que incluir como parametros são apenas para teste pois minha tabela está sem dados, para dos os campos da tabela DEPTO eu coloquei como VARCHAR2(10) qq coisa me avise SQL> SQL> SQL> declare 2 v_ret varchar2(100); 3 begin 4-- Call the procedure 5prc_atualiza_depto('1','1','1','1',v_ret); 6dbms_output.put_line( v_ret ); 7 end; 8 / NÃO EXISTE O DEPARTAMENTO 1! PL/SQL procedure successfully completed. SQL> 2009/11/18 Roberto Oshikawa > Matheus, > > Vou criar essa proc e a func nna minha máquina, mas posso garantir que não > existe nada em especial qdo vc manda executar um func ou proc que utilize > parametros iguais > > se vc está usando uma variável do tipo varchar2 ela não precisa ser > utilizada com apostrofo na execução > > exemplo : > > > Procedure teste > *variavel1 *varchar2(100); > > begin > .. > . > . > if estouchamando_a_func(*variavel1*) = '1234'then >raise error > end if; > end; > > end > > em todo o caso estarei criando esse codigo na minha maquina e te retorno > > > > 2009/11/18 Matheus Malta > >> >> >> Então Roberto... Só recapitulando... >> >> - O ambiente é o SQLPlus; >> - O parâmetro IN da func é do tipo VARCHAR2; >> - O parâmetro IN da proc é do tipo VARCHAR2; >> >> Estou tentando executar a func isoladamente, para ver como chamar o >> parâmetro e, pelo que eu percebo, eu tenho sempre que, ao passar o >> parâmetro, colocá-lo entre APÓSTROFES('), pois é um elemento tipo TEXTO. >> >> Penso que talvez possa ser isto, mas aí cabe a minha pergunta: como passar >> o parâmetro tipo texto dentro da proc de maneiras que, quando a func tiver >> que ler o parâmetro, ela também o leia como texto. >> >> Tentei colocar entre apóstrofes a variável(conforme visto na proc) mas >> ainda não está dando certo... >> >> Prosseguirei com os testes aqui... Qualquer novidade que você econtrar e >> puder me avisar, ficarei grato... >> >> Falows! >> >> >> Matheus Malta >> - Original Message - >> From: "Roberto Oshikawa" > >> To: > >> Sent: Wednesday, November 18, 2009 4:38 PM >> Subject: Re: [oracle_br] Function - PL/SQL >> >> Matheus, >> >> Sendo bem sincero não consegui identificar o erro da proc ou da func, a >> meu >> entender a chamada da func está correta, porém normalmente não faço dessa >> forma, eu utilizo >> >> if func() = v_Resultado then >> raise erro >> end if >> >> 2009/11/18 Matheus Malta >> > >> >> > >> > >> > Então... >> > >> > O objetivo é executar a procedure e a procedure (durante sua execução) >> vai >> > chamar uma func, que vai se utilizar do mesmo parâmetro de entrada da >> > procedure(no caso, o valor passado na variável v_cdepto), trazer um >> valor >> > pra dentro da procedure e a procedure continuar sua execução até o >> final, >> > tal como especificado abaixo, na proc: >> > >> > CREATE OR REPLACE PROCEDURE prc_atualiza_depto >> > ( >> > v_cdepto IN depto.cd_depto%TYPE, >> > V_depto IN depto.nm_depto%TYPE, >> > v_ger IN depto.cd_gerente%TYPE, >> > v_cdepto_ctb IN depto.cd_depto_ctb%TYPE, >> > v_ret OUT VARCHAR2 >> > ) >> > >> > IS >> > -- Declaração das variáveis >> > v_ver NUMBER; >> > v_erro EXCEPTION; >> > >> > BEGIN >> > >> > -- Verifica se existe o Depto >> > -- Aqui a função será usada >> > v_ver := fn_verifica_depto(upper('v_cdepto')); >> > >> > IF v_ver = 0 >> > THEN RAISE v_erro; >> > END IF; >> > >> > -- Atualiza o Depto >> > UPDATE depto >> > SET nm_depto = UPPER(v_depto), >> > cd_gerente = v_ger, >> > cd_depto_ctb = UPPER(v_cdepto_ctb) >> > WHERE cd_depto = UPPER(v_cdepto); >> > >> > v_ret := 'REGISTRO ATUALIZADO!'; >> > COMMIT; >> > >> > EXCEPTION >> > WHEN v_erro THEN >> > v_ret := 'NÃO EXISTE O DEPARTAMENTO '||UPPER(v_cdepto)||'!'; >> > ROLLBACK; >> > >> > WHEN OTHERS THEN >> > v_ret := SQLERRM; >> > ROLLBACK; >> > >> > END; >> > >> > A função que está sendo usada na proc acima é a seguinte: >> > >> > CREATE OR REPLACE FUNCTION fn_verifica_depto >> > (v_cdepto IN depto.cd_depto%TYPE) >> > RETURN NUMBER >> > >> > IS >> > >> > --Verifica a existência do Departamento >> > v_ver NUMBER; >> > >> > BEGIN >> > >> > SELECT COUNT(cd_depto) INTO v_ver >> > FROM depto >> > WHERE cd_depto = v_cdepto; >> > >> > RETURN v_ver; >> > >> > END; >> > >> > É isso... >> > >> > Desde já agradeço! >> > >> > Atenciosamente, >> > >> > >> > Matheus Malta >> > - Original Message - >> > From: "Roberto Oshikawa" > > > 40gmail.com>> >> > To: > > > 40yahoogrupos.com.br>> >> > Sent: Wednesday, November 18, 2009 12:08 PM >> > Subject: Re: [oracle_br] Function - PL/SQL >> > >> > Matheus, >> > >> > desculpa mas não entendi direito, vc está querendo chamar a func dentro >> da >> > proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? >> > >> > 2009/11/18 Matheus Malta >> >> >> > > >> > >> > > >> > > >> > > Roberto... Penso que o problema inicial esteja sendo o fato de como >> >
Re: Res: Res: [oracle_br] Tuning de Querys
Caio, Um dos melhores que eu conheço é o "Optimizing Oracle Performance" Cary Millsap. Até no ENPO-BR o gary goodman sorteou um livro desses. Ele abora SQL tuning. O curso da Oracle university "SQL tuning" eu achei muito bom também. De repente tem em cd self study, é mais barato, porém não conta como Hands-on para a prova. Atenciosamente, Rodrigo Mufalani DBA - OCP 10g & 11g +RAC Oracle ACE Member www.mrdba.com.br/mufalani/ mufal...@mrdba.com.br Mas em sua maioria todos possuem capítulos destinados a tuning de comandos SQL, que teoricamente é a última área de abordagem de tuning (nunca se começa o tuning pelo comando SQL, na maioria das metodologias). De qualquer maneira ha muito tempo lembro de ter visto um treinamento, se não me engano, da Oracle que se chamava Tuning The Schema. Era um treinamento que focava no otimizador, planos de execução, algoritmos de join, IOT, cluster, tipos de índice, hints, stored outline, tkprof. Acho dificil ter muito mais coisa para se estudar de tuning de consulta do que isso. Acho que era um curso online. Se precisar de ajuda para otimizar alguma consulta em específico pode postar a mesma aqui, de preferência com o plano de execução, para tentarmos te ajudar. Atenciosamente, Caio Spadafora. De: Hevandro Veiga Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 18 de Novembro de 2009 0:58:10 Assunto: Re: Res: [oracle_br] Tuning de Querys 2009/11/17 darcio XX > > > Esses livros parecem ser bom mais sao muito voltado para o banco. Estou > precisando de algo mais focado a Query... > > Abraço > > > De: Caio Spadafora > > > > > Para: oracle_br@yahoogrupos.com.br > Enviadas: Segunda-feira, 16 de Novembro de 2009 15:30:44 > Assunto: Res: [oracle_br] Tuning de Querys > > > Eu particularmente não gosto muito da abordagem do Burleson, ele é muito > conhecido por consolidar a documentação da Oracle, tenho o livro dele de > Statspack muito por não ter outras opções e para dar o benefício da > dúvida, > mas não gostei muito, muito do livro fica focado nos hit/misses e no > script > access.sql. > > Prefiro o Tom Kyte e o Craig (http://www.training .orapub.com/), apesar > de > se não me engano o Craig trabalhar com o Burleson. Uma boa leitura > apesar de > focada no 8i é o livro do Steve Adams (http://oreilly. com/catalog/ > 9781565925984). > > Bom proveito. > Atenciosamente, > Caio Spadafora. > > _ _ __ > De: Willian Fernando Frasson > Para: oracle...@yahoogrup os.com.br > > Enviadas: Sábado, 14 de Novembro de 2009 16:07:28 > Assunto: Re: [oracle_br] Tuning de Querys > > Procure pelo livro do burleson, The Definitive Tuning > esse vai te ajudar em mta coisa.. > > - Original Message - > From: darcio XX > To: oracle...@yahoogrup os.com.br > Sent: Saturday, November 14, 2009 3:45 PM > Subject: [oracle_br] Tuning de Querys > > Alguem conhece algum livro "apostila, post..." bom para tuning query? > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > - - - - - - > > O Banco de Dados de Vírus interno expirou. > Verificado por AVG - http://www.avgbrasi l.com.br > Versão: 8.0.233 / Banco de dados de vírus: 270.10.16/1926 - Data de > Lançamento: 30/1/2009 17:31 > > [As partes desta mensagem que não continham texto foram removidas] > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > __ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com > > [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 _
Re: [oracle_br] Function - PL/SQL
Matheus, Vou criar essa proc e a func nna minha máquina, mas posso garantir que não existe nada em especial qdo vc manda executar um func ou proc que utilize parametros iguais se vc está usando uma variável do tipo varchar2 ela não precisa ser utilizada com apostrofo na execução exemplo : Procedure teste *variavel1 *varchar2(100); begin .. . . if estouchamando_a_func(*variavel1*) = '1234'then raise error end if; end; end em todo o caso estarei criando esse codigo na minha maquina e te retorno 2009/11/18 Matheus Malta > > > Então Roberto... Só recapitulando... > > - O ambiente é o SQLPlus; > - O parâmetro IN da func é do tipo VARCHAR2; > - O parâmetro IN da proc é do tipo VARCHAR2; > > Estou tentando executar a func isoladamente, para ver como chamar o > parâmetro e, pelo que eu percebo, eu tenho sempre que, ao passar o > parâmetro, colocá-lo entre APÓSTROFES('), pois é um elemento tipo TEXTO. > > Penso que talvez possa ser isto, mas aí cabe a minha pergunta: como passar > o parâmetro tipo texto dentro da proc de maneiras que, quando a func tiver > que ler o parâmetro, ela também o leia como texto. > > Tentei colocar entre apóstrofes a variável(conforme visto na proc) mas > ainda não está dando certo... > > Prosseguirei com os testes aqui... Qualquer novidade que você econtrar e > puder me avisar, ficarei grato... > > Falows! > > > Matheus Malta > - Original Message - > From: "Roberto Oshikawa" > > To: > > Sent: Wednesday, November 18, 2009 4:38 PM > Subject: Re: [oracle_br] Function - PL/SQL > > Matheus, > > Sendo bem sincero não consegui identificar o erro da proc ou da func, a meu > entender a chamada da func está correta, porém normalmente não faço dessa > forma, eu utilizo > > if func() = v_Resultado then > raise erro > end if > > 2009/11/18 Matheus Malta > > > > > > > > > Então... > > > > O objetivo é executar a procedure e a procedure (durante sua execução) > vai > > chamar uma func, que vai se utilizar do mesmo parâmetro de entrada da > > procedure(no caso, o valor passado na variável v_cdepto), trazer um valor > > pra dentro da procedure e a procedure continuar sua execução até o final, > > tal como especificado abaixo, na proc: > > > > CREATE OR REPLACE PROCEDURE prc_atualiza_depto > > ( > > v_cdepto IN depto.cd_depto%TYPE, > > V_depto IN depto.nm_depto%TYPE, > > v_ger IN depto.cd_gerente%TYPE, > > v_cdepto_ctb IN depto.cd_depto_ctb%TYPE, > > v_ret OUT VARCHAR2 > > ) > > > > IS > > -- Declaração das variáveis > > v_ver NUMBER; > > v_erro EXCEPTION; > > > > BEGIN > > > > -- Verifica se existe o Depto > > -- Aqui a função será usada > > v_ver := fn_verifica_depto(upper('v_cdepto')); > > > > IF v_ver = 0 > > THEN RAISE v_erro; > > END IF; > > > > -- Atualiza o Depto > > UPDATE depto > > SET nm_depto = UPPER(v_depto), > > cd_gerente = v_ger, > > cd_depto_ctb = UPPER(v_cdepto_ctb) > > WHERE cd_depto = UPPER(v_cdepto); > > > > v_ret := 'REGISTRO ATUALIZADO!'; > > COMMIT; > > > > EXCEPTION > > WHEN v_erro THEN > > v_ret := 'NÃO EXISTE O DEPARTAMENTO '||UPPER(v_cdepto)||'!'; > > ROLLBACK; > > > > WHEN OTHERS THEN > > v_ret := SQLERRM; > > ROLLBACK; > > > > END; > > > > A função que está sendo usada na proc acima é a seguinte: > > > > CREATE OR REPLACE FUNCTION fn_verifica_depto > > (v_cdepto IN depto.cd_depto%TYPE) > > RETURN NUMBER > > > > IS > > > > --Verifica a existência do Departamento > > v_ver NUMBER; > > > > BEGIN > > > > SELECT COUNT(cd_depto) INTO v_ver > > FROM depto > > WHERE cd_depto = v_cdepto; > > > > RETURN v_ver; > > > > END; > > > > É isso... > > > > Desde já agradeço! > > > > Atenciosamente, > > > > > > Matheus Malta > > - Original Message - > > From: "Roberto Oshikawa" > 40gmail.com>> > > To: > 40yahoogrupos.com.br>> > > Sent: Wednesday, November 18, 2009 12:08 PM > > Subject: Re: [oracle_br] Function - PL/SQL > > > > Matheus, > > > > desculpa mas não entendi direito, vc está querendo chamar a func dentro > da > > proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? > > > > 2009/11/18 Matheus Malta > > > > > > > > > > > > > > > > Roberto... Penso que o problema inicial esteja sendo o fato de como > > chamar > > > a função mesmo... > > > > > > Estou com uma função aqui parecida com essa, em que o parâmetro a ser > > > passado é do tipo VARCHAR2... > > > > > > Ao referenciar a função numa procedure, ele retorna a mensagem do erro, > > > como senão houvessem dados a serem trazidos... > > > > > > Penso ser este o problema incialmente... > > > > > > Assim sendo (e aproveitando o ensejo) como posso referenciar uma função > > > dentro de uma procedure, considerando que o valor da variável que vai > ser > > > atribuído na função é do tipo TEXTO? > > > > > > Valew! > > > > > > Matheus Malta > > > > > > > > > - Original Message - > > > From: "Roberto Oshikawa" > > > 40gmail.com> > 40gmail.com>> > > > To: > > 40yahoogrupos.com.br> > 40yahoogrupos.com.br>> > > > Sent: Wednesday, November 18, 2009 11:48 AM > > > Subject: Re: [
Re: [oracle_br] DB LINK
Fernando, Você pode criar também synonyms para evitar sempre ter que colocar o @. Para criar o synonym, você precisa executar o seguinte comando: CREATE SYNONYM nome_do_synonym FOR tab...@nome_do_dblink; Dai para acessar os dados, basta executar a seguinte consulta: SELECT * FROM nome_do_synonym 2009/11/18 Marcos Fontana > Select xxx from tab...@nome_do_dblink; > > Atenciosamente, > > Marcos Fontana > > 2009/11/18 Fernando Garatini da Silva > > > > > > > Pessoal Boa Tarde gostaria de saber como se executa uma query com DB LINK > > > > Obrigado > > > > [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 > > > -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Res: Res: [oracle_br] Tuning de Querys
Mas em sua maioria todos possuem capítulos destinados a tuning de comandos SQL, que teoricamente é a última área de abordagem de tuning (nunca se começa o tuning pelo comando SQL, na maioria das metodologias). De qualquer maneira ha muito tempo lembro de ter visto um treinamento, se não me engano, da Oracle que se chamava Tuning The Schema. Era um treinamento que focava no otimizador, planos de execução, algoritmos de join, IOT, cluster, tipos de índice, hints, stored outline, tkprof. Acho dificil ter muito mais coisa para se estudar de tuning de consulta do que isso. Acho que era um curso online. Se precisar de ajuda para otimizar alguma consulta em específico pode postar a mesma aqui, de preferência com o plano de execução, para tentarmos te ajudar. Atenciosamente, Caio Spadafora. De: Hevandro Veiga Para: oracle_br@yahoogrupos.com.br Enviadas: Quarta-feira, 18 de Novembro de 2009 0:58:10 Assunto: Re: Res: [oracle_br] Tuning de Querys 2009/11/17 darcio XX > > > Esses livros parecem ser bom mais sao muito voltado para o banco. Estou > precisando de algo mais focado a Query... > > Abraço > > > De: Caio Spadafora > > > > Para: oracle_br@yahoogrupos.com.br > Enviadas: Segunda-feira, 16 de Novembro de 2009 15:30:44 > Assunto: Res: [oracle_br] Tuning de Querys > > > Eu particularmente não gosto muito da abordagem do Burleson, ele é muito > conhecido por consolidar a documentação da Oracle, tenho o livro dele de > Statspack muito por não ter outras opções e para dar o benefício da dúvida, > mas não gostei muito, muito do livro fica focado nos hit/misses e no script > access.sql. > > Prefiro o Tom Kyte e o Craig (http://www.training .orapub.com/), apesar de > se não me engano o Craig trabalhar com o Burleson. Uma boa leitura apesar de > focada no 8i é o livro do Steve Adams (http://oreilly. com/catalog/ > 9781565925984). > > Bom proveito. > Atenciosamente, > Caio Spadafora. > > _ _ __ > De: Willian Fernando Frasson > Para: oracle...@yahoogrup os.com.br > > Enviadas: Sábado, 14 de Novembro de 2009 16:07:28 > Assunto: Re: [oracle_br] Tuning de Querys > > Procure pelo livro do burleson, The Definitive Tuning > esse vai te ajudar em mta coisa.. > > - Original Message - > From: darcio XX > To: oracle...@yahoogrup os.com.br > Sent: Saturday, November 14, 2009 3:45 PM > Subject: [oracle_br] Tuning de Querys > > Alguem conhece algum livro "apostila, post..." bom para tuning query? > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > - - - - - - > > O Banco de Dados de Vírus interno expirou. > Verificado por AVG - http://www.avgbrasi l.com.br > Versão: 8.0.233 / Banco de dados de vírus: 270.10.16/1926 - Data de > Lançamento: 30/1/2009 17:31 > > [As partes desta mensagem que não continham texto foram removidas] > > _ _ _ _ _ _ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > __ > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com > > [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 Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] DB LINK
Select xxx from tab...@nome_do_dblink; Atenciosamente, Marcos Fontana 2009/11/18 Fernando Garatini da Silva > > > Pessoal Boa Tarde gostaria de saber como se executa uma query com DB LINK > > Obrigado > > [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
Re: [oracle_br] DB LINK
Boa tarde, select from tab...@nome_do_database_link where Y; Atenciosamente, Rodrigo Mufalani DBA - OCP 10g & 11g +RAC Oracle ACE Member www.mrdba.com.br/mufalani/ mufal...@mrdba.com.br Pessoal Boa Tarde gostaria de saber como se executa uma query com DB LINK Obrigado [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] DB LINK
Pessoal Boa Tarde gostaria de saber como se executa uma query com DB LINK Obrigado [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Function - PL/SQL
Então Roberto... Só recapitulando... - O ambiente é o SQLPlus; - O parâmetro IN da func é do tipo VARCHAR2; - O parâmetro IN da proc é do tipo VARCHAR2; Estou tentando executar a func isoladamente, para ver como chamar o parâmetro e, pelo que eu percebo, eu tenho sempre que, ao passar o parâmetro, colocá-lo entre APÓSTROFES('), pois é um elemento tipo TEXTO. Penso que talvez possa ser isto, mas aí cabe a minha pergunta: como passar o parâmetro tipo texto dentro da proc de maneiras que, quando a func tiver que ler o parâmetro, ela também o leia como texto. Tentei colocar entre apóstrofes a variável(conforme visto na proc) mas ainda não está dando certo... Prosseguirei com os testes aqui... Qualquer novidade que você econtrar e puder me avisar, ficarei grato... Falows! Matheus Malta - Original Message - From: "Roberto Oshikawa" To: Sent: Wednesday, November 18, 2009 4:38 PM Subject: Re: [oracle_br] Function - PL/SQL Matheus, Sendo bem sincero não consegui identificar o erro da proc ou da func, a meu entender a chamada da func está correta, porém normalmente não faço dessa forma, eu utilizo if func() = v_Resultado then raise erro end if 2009/11/18 Matheus Malta > > > Então... > > O objetivo é executar a procedure e a procedure (durante sua execução) vai > chamar uma func, que vai se utilizar do mesmo parâmetro de entrada da > procedure(no caso, o valor passado na variável v_cdepto), trazer um valor > pra dentro da procedure e a procedure continuar sua execução até o final, > tal como especificado abaixo, na proc: > > CREATE OR REPLACE PROCEDURE prc_atualiza_depto > ( > v_cdepto IN depto.cd_depto%TYPE, > V_depto IN depto.nm_depto%TYPE, > v_ger IN depto.cd_gerente%TYPE, > v_cdepto_ctb IN depto.cd_depto_ctb%TYPE, > v_ret OUT VARCHAR2 > ) > > IS > -- Declaração das variáveis > v_ver NUMBER; > v_erro EXCEPTION; > > BEGIN > > -- Verifica se existe o Depto > -- Aqui a função será usada > v_ver := fn_verifica_depto(upper('v_cdepto')); > > IF v_ver = 0 > THEN RAISE v_erro; > END IF; > > -- Atualiza o Depto > UPDATE depto > SET nm_depto = UPPER(v_depto), > cd_gerente = v_ger, > cd_depto_ctb = UPPER(v_cdepto_ctb) > WHERE cd_depto = UPPER(v_cdepto); > > v_ret := 'REGISTRO ATUALIZADO!'; > COMMIT; > > EXCEPTION > WHEN v_erro THEN > v_ret := 'NÃO EXISTE O DEPARTAMENTO '||UPPER(v_cdepto)||'!'; > ROLLBACK; > > WHEN OTHERS THEN > v_ret := SQLERRM; > ROLLBACK; > > END; > > A função que está sendo usada na proc acima é a seguinte: > > CREATE OR REPLACE FUNCTION fn_verifica_depto > (v_cdepto IN depto.cd_depto%TYPE) > RETURN NUMBER > > IS > > --Verifica a existência do Departamento > v_ver NUMBER; > > BEGIN > > SELECT COUNT(cd_depto) INTO v_ver > FROM depto > WHERE cd_depto = v_cdepto; > > RETURN v_ver; > > END; > > É isso... > > Desde já agradeço! > > Atenciosamente, > > > Matheus Malta > - Original Message - > From: "Roberto Oshikawa" > > To: > > Sent: Wednesday, November 18, 2009 12:08 PM > Subject: Re: [oracle_br] Function - PL/SQL > > Matheus, > > desculpa mas não entendi direito, vc está querendo chamar a func dentro da > proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? > > 2009/11/18 Matheus Malta > > > > > > > > > Roberto... Penso que o problema inicial esteja sendo o fato de como > chamar > > a função mesmo... > > > > Estou com uma função aqui parecida com essa, em que o parâmetro a ser > > passado é do tipo VARCHAR2... > > > > Ao referenciar a função numa procedure, ele retorna a mensagem do erro, > > como senão houvessem dados a serem trazidos... > > > > Penso ser este o problema incialmente... > > > > Assim sendo (e aproveitando o ensejo) como posso referenciar uma função > > dentro de uma procedure, considerando que o valor da variável que vai ser > > atribuído na função é do tipo TEXTO? > > > > Valew! > > > > Matheus Malta > > > > > > - Original Message - > > From: "Roberto Oshikawa" > 40gmail.com>> > > To: > 40yahoogrupos.com.br>> > > Sent: Wednesday, November 18, 2009 11:48 AM > > Subject: Re: [oracle_br] Function - PL/SQL > > > > Matheus, > > > > vc poderia utilizar array ou type para retornar 1 ou mais registros, esse > > tipo de variavel é igual a uma tabela e vc vai atribuindo os valores > dentro > > do for > > > > se tiver dúvida me avisa que vamos conversando > > > > outra opção dependendo do retorno é ir concatenando os valores dentro da > > function e ir colocando algum delimitador para que vc saiba onde começa e > > onde termina o objeto que vc está procurando > > > > []s > > > > Roberto Oshikawa > > > > 2009/11/18 Matheus Malta > > > > > > > > > > > > > > > > Pessoal... > > > > > > Estou criando uma função que me traga os nomes do objetos do meu > schema, > > > considerando o tipo objetos que é passado como parâmetro de entrada... > > > > > > No entanto, estou tendo dificuldades (ou não estou sabendo) como > executar > > a > > > função de maneira que ela me retorne os valores que eu quero... Alguém > aí > > > poderia
Re: [oracle_br] Function - PL/SQL
Matheus, Sendo bem sincero não consegui identificar o erro da proc ou da func, a meu entender a chamada da func está correta, porém normalmente não faço dessa forma, eu utilizo if func() = v_Resultado then raise erro end if 2009/11/18 Matheus Malta > > > Então... > > O objetivo é executar a procedure e a procedure (durante sua execução) vai > chamar uma func, que vai se utilizar do mesmo parâmetro de entrada da > procedure(no caso, o valor passado na variável v_cdepto), trazer um valor > pra dentro da procedure e a procedure continuar sua execução até o final, > tal como especificado abaixo, na proc: > > CREATE OR REPLACE PROCEDURE prc_atualiza_depto > ( > v_cdepto IN depto.cd_depto%TYPE, > V_depto IN depto.nm_depto%TYPE, > v_ger IN depto.cd_gerente%TYPE, > v_cdepto_ctb IN depto.cd_depto_ctb%TYPE, > v_ret OUT VARCHAR2 > ) > > IS > -- Declaração das variáveis > v_ver NUMBER; > v_erro EXCEPTION; > > BEGIN > > -- Verifica se existe o Depto > -- Aqui a função será usada > v_ver := fn_verifica_depto(upper('v_cdepto')); > > IF v_ver = 0 > THEN RAISE v_erro; > END IF; > > -- Atualiza o Depto > UPDATE depto > SET nm_depto = UPPER(v_depto), > cd_gerente = v_ger, > cd_depto_ctb = UPPER(v_cdepto_ctb) > WHERE cd_depto = UPPER(v_cdepto); > > v_ret := 'REGISTRO ATUALIZADO!'; > COMMIT; > > EXCEPTION > WHEN v_erro THEN > v_ret := 'NÃO EXISTE O DEPARTAMENTO '||UPPER(v_cdepto)||'!'; > ROLLBACK; > > WHEN OTHERS THEN > v_ret := SQLERRM; > ROLLBACK; > > END; > > A função que está sendo usada na proc acima é a seguinte: > > CREATE OR REPLACE FUNCTION fn_verifica_depto > (v_cdepto IN depto.cd_depto%TYPE) > RETURN NUMBER > > IS > > --Verifica a existência do Departamento > v_ver NUMBER; > > BEGIN > > SELECT COUNT(cd_depto) INTO v_ver > FROM depto > WHERE cd_depto = v_cdepto; > > RETURN v_ver; > > END; > > É isso... > > Desde já agradeço! > > Atenciosamente, > > > Matheus Malta > - Original Message - > From: "Roberto Oshikawa" > > To: > > Sent: Wednesday, November 18, 2009 12:08 PM > Subject: Re: [oracle_br] Function - PL/SQL > > Matheus, > > desculpa mas não entendi direito, vc está querendo chamar a func dentro da > proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? > > 2009/11/18 Matheus Malta > > > > > > > > > Roberto... Penso que o problema inicial esteja sendo o fato de como > chamar > > a função mesmo... > > > > Estou com uma função aqui parecida com essa, em que o parâmetro a ser > > passado é do tipo VARCHAR2... > > > > Ao referenciar a função numa procedure, ele retorna a mensagem do erro, > > como senão houvessem dados a serem trazidos... > > > > Penso ser este o problema incialmente... > > > > Assim sendo (e aproveitando o ensejo) como posso referenciar uma função > > dentro de uma procedure, considerando que o valor da variável que vai ser > > atribuído na função é do tipo TEXTO? > > > > Valew! > > > > Matheus Malta > > > > > > - Original Message - > > From: "Roberto Oshikawa" > 40gmail.com>> > > To: > 40yahoogrupos.com.br>> > > Sent: Wednesday, November 18, 2009 11:48 AM > > Subject: Re: [oracle_br] Function - PL/SQL > > > > Matheus, > > > > vc poderia utilizar array ou type para retornar 1 ou mais registros, esse > > tipo de variavel é igual a uma tabela e vc vai atribuindo os valores > dentro > > do for > > > > se tiver dúvida me avisa que vamos conversando > > > > outra opção dependendo do retorno é ir concatenando os valores dentro da > > function e ir colocando algum delimitador para que vc saiba onde começa e > > onde termina o objeto que vc está procurando > > > > []s > > > > Roberto Oshikawa > > > > 2009/11/18 Matheus Malta > > > > > > > > > > > > > > > > Pessoal... > > > > > > Estou criando uma função que me traga os nomes do objetos do meu > schema, > > > considerando o tipo objetos que é passado como parâmetro de entrada... > > > > > > No entanto, estou tendo dificuldades (ou não estou sabendo) como > executar > > a > > > função de maneira que ela me retorne os valores que eu quero... Alguém > aí > > > poderia me ajudar? É possível uma function trazer mais do que uma > linha? > > > > > > Valew... > > > > > > Segue a função: > > > CREATE OR REPLACE FUNCTION fn_ver_objetos > > > (v_otipo IN varchar2) > > > RETURN VARCHAR2 > > > > > > IS > > > > > > v_oname varchar2(20); > > > > > > CURSOR objetos is > > > select object_name from user_objects > > > where object_type = v_otipo; > > > > > > BEGIN > > > > > > open objetos; > > > > > > loop > > > > > > fetch objetos into v_oname; > > > exit when objetos%notfound; > > > > > > IF SQL%NOTFOUND > > > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > > > > > ELSE > > > RETURN v_oname; > > > > > > END IF; > > > > > > end loop; > > > > > > close objetos; > > > > > > END; > > > > > > SCRIPT PARA CHAMAR A FUNÇÃO: > > > accept tipo prompt 'INFORME O TIPO: ' > > > > > > DECLARE > > > v_fn VARCHAR2(10):= '&tipo'; > > > v_mostra VARCHAR2(100); > > > BEGIN > > > > > > v_mostra := fn_ver_objetos(v_fn); > > > > > > DB
Re: [oracle_br] Function - PL/SQL
Então... O objetivo é executar a procedure e a procedure (durante sua execução) vai chamar uma func, que vai se utilizar do mesmo parâmetro de entrada da procedure(no caso, o valor passado na variável v_cdepto), trazer um valor pra dentro da procedure e a procedure continuar sua execução até o final, tal como especificado abaixo, na proc: CREATE OR REPLACE PROCEDURE prc_atualiza_depto ( v_cdepto INdepto.cd_depto%TYPE, V_deptoINdepto.nm_depto%TYPE, v_ger INdepto.cd_gerente%TYPE, v_cdepto_ctb INdepto.cd_depto_ctb%TYPE, v_ret OUT VARCHAR2 ) IS -- Declaração das variáveis v_ver NUMBER; v_erroEXCEPTION; BEGIN -- Verifica se existe o Depto -- Aqui a função será usada v_ver := fn_verifica_depto(upper('v_cdepto')); IF v_ver = 0 THEN RAISE v_erro; END IF; -- Atualiza o Depto UPDATE depto SET nm_depto = UPPER(v_depto), cd_gerente = v_ger, cd_depto_ctb = UPPER(v_cdepto_ctb) WHERE cd_depto = UPPER(v_cdepto); v_ret := 'REGISTRO ATUALIZADO!'; COMMIT; EXCEPTION WHEN v_erro THEN v_ret := 'NÃO EXISTE O DEPARTAMENTO '||UPPER(v_cdepto)||'!'; ROLLBACK; WHEN OTHERS THEN v_ret := SQLERRM; ROLLBACK; END; A função que está sendo usada na proc acima é a seguinte: CREATE OR REPLACE FUNCTION fn_verifica_depto (v_cdepto IN depto.cd_depto%TYPE) RETURNNUMBER IS --Verifica a existência do Departamento v_ver NUMBER; BEGIN SELECT COUNT(cd_depto) INTO v_ver FROM depto WHERE cd_depto = v_cdepto; RETURN v_ver; END; É isso... Desde já agradeço! Atenciosamente, Matheus Malta - Original Message - From: "Roberto Oshikawa" To: Sent: Wednesday, November 18, 2009 12:08 PM Subject: Re: [oracle_br] Function - PL/SQL Matheus, desculpa mas não entendi direito, vc está querendo chamar a func dentro da proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? 2009/11/18 Matheus Malta > > > Roberto... Penso que o problema inicial esteja sendo o fato de como chamar > a função mesmo... > > Estou com uma função aqui parecida com essa, em que o parâmetro a ser > passado é do tipo VARCHAR2... > > Ao referenciar a função numa procedure, ele retorna a mensagem do erro, > como senão houvessem dados a serem trazidos... > > Penso ser este o problema incialmente... > > Assim sendo (e aproveitando o ensejo) como posso referenciar uma função > dentro de uma procedure, considerando que o valor da variável que vai ser > atribuído na função é do tipo TEXTO? > > Valew! > > Matheus Malta > > > - Original Message - > From: "Roberto Oshikawa" > > To: > > Sent: Wednesday, November 18, 2009 11:48 AM > Subject: Re: [oracle_br] Function - PL/SQL > > Matheus, > > vc poderia utilizar array ou type para retornar 1 ou mais registros, esse > tipo de variavel é igual a uma tabela e vc vai atribuindo os valores dentro > do for > > se tiver dúvida me avisa que vamos conversando > > outra opção dependendo do retorno é ir concatenando os valores dentro da > function e ir colocando algum delimitador para que vc saiba onde começa e > onde termina o objeto que vc está procurando > > []s > > Roberto Oshikawa > > 2009/11/18 Matheus Malta > > > > > > > > > Pessoal... > > > > Estou criando uma função que me traga os nomes do objetos do meu schema, > > considerando o tipo objetos que é passado como parâmetro de entrada... > > > > No entanto, estou tendo dificuldades (ou não estou sabendo) como executar > a > > função de maneira que ela me retorne os valores que eu quero... Alguém aí > > poderia me ajudar? É possível uma function trazer mais do que uma linha? > > > > Valew... > > > > Segue a função: > > CREATE OR REPLACE FUNCTION fn_ver_objetos > > (v_otipo IN varchar2) > > RETURN VARCHAR2 > > > > IS > > > > v_oname varchar2(20); > > > > CURSOR objetos is > > select object_name from user_objects > > where object_type = v_otipo; > > > > BEGIN > > > > open objetos; > > > > loop > > > > fetch objetos into v_oname; > > exit when objetos%notfound; > > > > IF SQL%NOTFOUND > > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > > > ELSE > > RETURN v_oname; > > > > END IF; > > > > end loop; > > > > close objetos; > > > > END; > > > > SCRIPT PARA CHAMAR A FUNÇÃO: > > accept tipo prompt 'INFORME O TIPO: ' > > > > DECLARE > > v_fn VARCHAR2(10):= '&tipo'; > > v_mostra VARCHAR2(100); > > BEGIN > > > > v_mostra := fn_ver_objetos(v_fn); > > > > DBMS_OUTPUT.PUT_LINE(v_mostra); > > end; > > > > Valew pessoal! > > > > Matheus Malta > > > > [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.
Re: [oracle_br] Function - PL/SQL
Matheus, desculpa mas não entendi direito, vc está querendo chamar a func dentro da proc ou criar uma func dentro da proc ? Ou viajei e não eh nada disso ? 2009/11/18 Matheus Malta > > > Roberto... Penso que o problema inicial esteja sendo o fato de como chamar > a função mesmo... > > Estou com uma função aqui parecida com essa, em que o parâmetro a ser > passado é do tipo VARCHAR2... > > Ao referenciar a função numa procedure, ele retorna a mensagem do erro, > como senão houvessem dados a serem trazidos... > > Penso ser este o problema incialmente... > > Assim sendo (e aproveitando o ensejo) como posso referenciar uma função > dentro de uma procedure, considerando que o valor da variável que vai ser > atribuído na função é do tipo TEXTO? > > Valew! > > Matheus Malta > > > - Original Message - > From: "Roberto Oshikawa" > > To: > > Sent: Wednesday, November 18, 2009 11:48 AM > Subject: Re: [oracle_br] Function - PL/SQL > > Matheus, > > vc poderia utilizar array ou type para retornar 1 ou mais registros, esse > tipo de variavel é igual a uma tabela e vc vai atribuindo os valores dentro > do for > > se tiver dúvida me avisa que vamos conversando > > outra opção dependendo do retorno é ir concatenando os valores dentro da > function e ir colocando algum delimitador para que vc saiba onde começa e > onde termina o objeto que vc está procurando > > []s > > Roberto Oshikawa > > 2009/11/18 Matheus Malta > > > > > > > > > Pessoal... > > > > Estou criando uma função que me traga os nomes do objetos do meu schema, > > considerando o tipo objetos que é passado como parâmetro de entrada... > > > > No entanto, estou tendo dificuldades (ou não estou sabendo) como executar > a > > função de maneira que ela me retorne os valores que eu quero... Alguém aí > > poderia me ajudar? É possível uma function trazer mais do que uma linha? > > > > Valew... > > > > Segue a função: > > CREATE OR REPLACE FUNCTION fn_ver_objetos > > (v_otipo IN varchar2) > > RETURN VARCHAR2 > > > > IS > > > > v_oname varchar2(20); > > > > CURSOR objetos is > > select object_name from user_objects > > where object_type = v_otipo; > > > > BEGIN > > > > open objetos; > > > > loop > > > > fetch objetos into v_oname; > > exit when objetos%notfound; > > > > IF SQL%NOTFOUND > > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > > > ELSE > > RETURN v_oname; > > > > END IF; > > > > end loop; > > > > close objetos; > > > > END; > > > > SCRIPT PARA CHAMAR A FUNÇÃO: > > accept tipo prompt 'INFORME O TIPO: ' > > > > DECLARE > > v_fn VARCHAR2(10):= '&tipo'; > > v_mostra VARCHAR2(100); > > BEGIN > > > > v_mostra := fn_ver_objetos(v_fn); > > > > DBMS_OUTPUT.PUT_LINE(v_mostra); > > end; > > > > Valew pessoal! > > > > Matheus Malta > > > > [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 > > > [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
Re: [oracle_br] Function - PL/SQL
Veja se assim te atenderia: * CREATE OR REPLACE FUNCTION fn_ver_objetos*(*v_otipo IN varchar2*)* RETURN sys_refcursor as Out_ResultSet sys_refcursor*;* BEGIN open Out_ResultSet for select object_name from user_objects where object_type *=* v_otipo*;* RETURN Out_ResultSet*;* END*;* * 2009/11/18 Roberto Oshikawa > Matheus, > > vc poderia utilizar array ou type para retornar 1 ou mais registros, esse > tipo de variavel é igual a uma tabela e vc vai atribuindo os valores dentro > do for > > se tiver dúvida me avisa que vamos conversando > > outra opção dependendo do retorno é ir concatenando os valores dentro da > function e ir colocando algum delimitador para que vc saiba onde começa e > onde termina o objeto que vc está procurando > > > []s > > Roberto Oshikawa > > > > > > > > 2009/11/18 Matheus Malta > > > > > > > Pessoal... > > > > Estou criando uma função que me traga os nomes do objetos do meu schema, > > considerando o tipo objetos que é passado como parâmetro de entrada... > > > > No entanto, estou tendo dificuldades (ou não estou sabendo) como executar > a > > função de maneira que ela me retorne os valores que eu quero... Alguém aí > > poderia me ajudar? É possível uma function trazer mais do que uma linha? > > > > Valew... > > > > Segue a função: > > CREATE OR REPLACE FUNCTION fn_ver_objetos > > (v_otipo IN varchar2) > > RETURN VARCHAR2 > > > > IS > > > > v_oname varchar2(20); > > > > CURSOR objetos is > > select object_name from user_objects > > where object_type = v_otipo; > > > > BEGIN > > > > open objetos; > > > > loop > > > > fetch objetos into v_oname; > > exit when objetos%notfound; > > > > IF SQL%NOTFOUND > > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > > > ELSE > > RETURN v_oname; > > > > END IF; > > > > end loop; > > > > close objetos; > > > > END; > > > > SCRIPT PARA CHAMAR A FUNÇÃO: > > accept tipo prompt 'INFORME O TIPO: ' > > > > DECLARE > > v_fn VARCHAR2(10):= '&tipo'; > > v_mostra VARCHAR2(100); > > BEGIN > > > > v_mostra := fn_ver_objetos(v_fn); > > > > DBMS_OUTPUT.PUT_LINE(v_mostra); > > end; > > > > Valew pessoal! > > > > Matheus Malta > > > > [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 > > > -- Abraços, Mária Cristina Cel: 031-8883-5543 E-mail: mariancrist...@gmail.com MSN: mcristinasil...@hotmail.com -- "O começo é a parte mais importante do trabalho." - Platão [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Function - PL/SQL
Roberto... Penso que o problema inicial esteja sendo o fato de como chamar a função mesmo... Estou com uma função aqui parecida com essa, em que o parâmetro a ser passado é do tipo VARCHAR2... Ao referenciar a função numa procedure, ele retorna a mensagem do erro, como senão houvessem dados a serem trazidos... Penso ser este o problema incialmente... Assim sendo (e aproveitando o ensejo) como posso referenciar uma função dentro de uma procedure, considerando que o valor da variável que vai ser atribuído na função é do tipo TEXTO? Valew! Matheus Malta - Original Message - From: "Roberto Oshikawa" To: Sent: Wednesday, November 18, 2009 11:48 AM Subject: Re: [oracle_br] Function - PL/SQL Matheus, vc poderia utilizar array ou type para retornar 1 ou mais registros, esse tipo de variavel é igual a uma tabela e vc vai atribuindo os valores dentro do for se tiver dúvida me avisa que vamos conversando outra opção dependendo do retorno é ir concatenando os valores dentro da function e ir colocando algum delimitador para que vc saiba onde começa e onde termina o objeto que vc está procurando []s Roberto Oshikawa 2009/11/18 Matheus Malta > > > Pessoal... > > Estou criando uma função que me traga os nomes do objetos do meu schema, > considerando o tipo objetos que é passado como parâmetro de entrada... > > No entanto, estou tendo dificuldades (ou não estou sabendo) como executar a > função de maneira que ela me retorne os valores que eu quero... Alguém aí > poderia me ajudar? É possível uma function trazer mais do que uma linha? > > Valew... > > Segue a função: > CREATE OR REPLACE FUNCTION fn_ver_objetos > (v_otipo IN varchar2) > RETURN VARCHAR2 > > IS > > v_oname varchar2(20); > > CURSOR objetos is > select object_name from user_objects > where object_type = v_otipo; > > BEGIN > > open objetos; > > loop > > fetch objetos into v_oname; > exit when objetos%notfound; > > IF SQL%NOTFOUND > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > ELSE > RETURN v_oname; > > END IF; > > end loop; > > close objetos; > > END; > > SCRIPT PARA CHAMAR A FUNÇÃO: > accept tipo prompt 'INFORME O TIPO: ' > > DECLARE > v_fn VARCHAR2(10):= '&tipo'; > v_mostra VARCHAR2(100); > BEGIN > > v_mostra := fn_ver_objetos(v_fn); > > DBMS_OUTPUT.PUT_LINE(v_mostra); > end; > > Valew pessoal! > > Matheus Malta > > [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 [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Function - PL/SQL
Matheus, vc poderia utilizar array ou type para retornar 1 ou mais registros, esse tipo de variavel é igual a uma tabela e vc vai atribuindo os valores dentro do for se tiver dúvida me avisa que vamos conversando outra opção dependendo do retorno é ir concatenando os valores dentro da function e ir colocando algum delimitador para que vc saiba onde começa e onde termina o objeto que vc está procurando []s Roberto Oshikawa 2009/11/18 Matheus Malta > > > Pessoal... > > Estou criando uma função que me traga os nomes do objetos do meu schema, > considerando o tipo objetos que é passado como parâmetro de entrada... > > No entanto, estou tendo dificuldades (ou não estou sabendo) como executar a > função de maneira que ela me retorne os valores que eu quero... Alguém aí > poderia me ajudar? É possível uma function trazer mais do que uma linha? > > Valew... > > Segue a função: > CREATE OR REPLACE FUNCTION fn_ver_objetos > (v_otipo IN varchar2) > RETURN VARCHAR2 > > IS > > v_oname varchar2(20); > > CURSOR objetos is > select object_name from user_objects > where object_type = v_otipo; > > BEGIN > > open objetos; > > loop > > fetch objetos into v_oname; > exit when objetos%notfound; > > IF SQL%NOTFOUND > THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; > > ELSE > RETURN v_oname; > > END IF; > > end loop; > > close objetos; > > END; > > SCRIPT PARA CHAMAR A FUNÇÃO: > accept tipo prompt 'INFORME O TIPO: ' > > DECLARE > v_fn VARCHAR2(10):= '&tipo'; > v_mostra VARCHAR2(100); > BEGIN > > v_mostra := fn_ver_objetos(v_fn); > > DBMS_OUTPUT.PUT_LINE(v_mostra); > end; > > Valew pessoal! > > Matheus Malta > > [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
[oracle_br] Function - PL/SQL
Pessoal... Estou criando uma função que me traga os nomes do objetos do meu schema, considerando o tipo objetos que é passado como parâmetro de entrada... No entanto, estou tendo dificuldades (ou não estou sabendo) como executar a função de maneira que ela me retorne os valores que eu quero... Alguém aí poderia me ajudar? É possível uma function trazer mais do que uma linha? Valew... Segue a função: CREATE OR REPLACE FUNCTION fn_ver_objetos (v_otipo IN varchar2) RETURN VARCHAR2 IS v_oname varchar2(20); CURSOR objetos is select object_name from user_objects where object_type = v_otipo; BEGIN open objetos; loop fetch objetos into v_oname; exit when objetos%notfound; IF SQL%NOTFOUND THEN RETURN 'NÃO EXISTEM OBJETOS DESTE TIPO!'; ELSE RETURN v_oname; END IF; end loop; close objetos; END; SCRIPT PARA CHAMAR A FUNÇÃO: accept tipo prompt 'INFORME O TIPO: ' DECLARE v_fn VARCHAR2(10):= '&tipo'; v_mostra VARCHAR2(100); BEGIN v_mostra := fn_ver_objetos(v_fn); DBMS_OUTPUT.PUT_LINE(v_mostra); end; Valew pessoal! Matheus Malta [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Erro: -29540: ORA-29540: class oracle/plsql/net/TCPConnection does not exist ORA-06512: at line 8
O que é nescessário para habilitar o sendMail? Olha a msg. Erro: -29540: ORA-29540: class oracle/plsql/net/TCPConnection does not exist ORA-06512: at line 8 Pablo [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Recuperar Banco
Oi Alex, Se o dump for full ou se o referido usuário estiver nesse dump, faça o seguinte: 1. Recrie o usuário (e as tablespaces, se existir) 2. Efetue um imp somente desse usuário (schema) Isso vai recuperar o backup até a meia-noite, mas eu não conheço solução para aplicar os archives para este usuário (se achar algo, aviso). Parece que sua dica já vem a calhar, utilizar o logminer para ler as transações e aplicá-las. []s Braga 2009/11/18 Alex Oracle > > > Olá pessoal, > > Gostaria de compartilhar uma situação pra ver se existe algum outro ponto > possível de solução. Mas a situação é a seguinte: > > Um analista que toma conta de um banco/sistema cometeu um erro (acidental) > de clicar num script que simplesmente dropa as tabelas e o usuario do banco. > Feito isso, ele me liga perguntando se existe alguma forma de recuperar o > grande erro!! > Comentários a parte do ocorrido, vamos pros fatos. > > A situação da base: > É uma base 10g Standard em Windows 2003 e em archivelog, mas não tem backup > via Rman, apenas um dump diário a meia-noite. > Existe alguma possibilidade de recuperar (e aplicar) este dados da > meia-noite até a hora do "acidente" lendo os archivelogs?? > > O Flashback a nivel de tabela só está habilitado no Enterprise, certo? > Como não tem copia dos datafiles no ponto da meia-noite, não tem como > aplicar redolog, correto? > LogMiner seria uma possiblidade de "ler" as transações dessas ultimas 6 > horas, correto? > > Existe algo mais que possa ser feito pra minimizar o estrago? > > Grato pela ajuda. > Alex > [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Recuperar Banco
Não...Isso funciona no SE tb. Vai lá e dá e rode o script abaixo set trimspool on set pages 0 set lin 1000 spool correcao.sql select 'flashback table '||owner||'.'||original_name||' to before drop;' from dba_recyclebin where type='TABLE' and owner=''; spool off; -...@correcao.sql Isso vai te ajudar Atenciosamente, Rodrigo Mufalani DBA - OCP 10g & 11g +RAC Oracle ACE Member www.mrdba.com.br/mufalani/ mufal...@mrdba.com.br Olá pessoal, Gostaria de compartilhar uma situação pra ver se existe algum outro ponto possível de solução. Mas a situação é a seguinte: Um analista que toma conta de um banco/sistema cometeu um erro (acidental) de clicar num script que simplesmente dropa as tabelas e o usuario do banco. Feito isso, ele me liga perguntando se existe alguma forma de recuperar o grande erro!! Comentários a parte do ocorrido, vamos pros fatos. A situação da base: É uma base 10g Standard em Windows 2003 e em archivelog, mas não tem backup via Rman, apenas um dump diário a meia-noite. Existe alguma possibilidade de recuperar (e aplicar) este dados da meia-noite até a hora do "acidente" lendo os archivelogs?? O Flashback a nivel de tabela só está habilitado no Enterprise, certo? Como não tem copia dos datafiles no ponto da meia-noite, não tem como aplicar redolog, correto? LogMiner seria uma possiblidade de "ler" as transações dessas ultimas 6 horas, correto? Existe algo mais que possa ser feito pra minimizar o estrago? Grato pela ajuda. Alex Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
[oracle_br] Recuperar Banco
Olá pessoal, Gostaria de compartilhar uma situação pra ver se existe algum outro ponto possível de solução. Mas a situação é a seguinte: Um analista que toma conta de um banco/sistema cometeu um erro (acidental) de clicar num script que simplesmente dropa as tabelas e o usuario do banco. Feito isso, ele me liga perguntando se existe alguma forma de recuperar o grande erro!! Comentários a parte do ocorrido, vamos pros fatos. A situação da base: É uma base 10g Standard em Windows 2003 e em archivelog, mas não tem backup via Rman, apenas um dump diário a meia-noite. Existe alguma possibilidade de recuperar (e aplicar) este dados da meia-noite até a hora do "acidente" lendo os archivelogs?? O Flashback a nivel de tabela só está habilitado no Enterprise, certo? Como não tem copia dos datafiles no ponto da meia-noite, não tem como aplicar redolog, correto? LogMiner seria uma possiblidade de "ler" as transações dessas ultimas 6 horas, correto? Existe algo mais que possa ser feito pra minimizar o estrago? Grato pela ajuda. Alex Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
[oracle_br] criar ASM
Bom dia! Ontem li no libro Certificação OCP - Guia Completo (Oracle Press), um capítulo sobre ASM, e fiquei interessado em aplicar nos meus servidores. Hoje tenho dois servidores HP-UX 11.23, com Release 10.2.0.1 e Windows 2003 Server com o mesmo release. Alguém poderia me dizer mais sobre o ASM? Tem como identificar pra ver se já tenho criado a instância ASM? Grato, Márcio. [As partes desta mensagem que não continham texto foram removidas]