Re: [oracle_br] sum com campo nclob
Sem acento! Dependendo do que voce quiser fazer, voce pode usar uma feature chamada *User-Defined Aggregate Functions*. http://docs.oracle.com/cd/B28359_01/appdev.111/b28425/aggr_functions.htm Claro que isso tem dependencias de versao de banco, tipo de dados envolvidos.. Nao sei se vai funcionar legal com LOBs, mas pode valer a pena checar. Abracao. Atenciosamente, Gleyson Melo Em 14 de janeiro de 2014 09:54, Leonardo Santos da Mata leonardodam...@gmail.com escreveu: Bom dia, algu€ ¢Ã©m sabe me dizer se tem como fazer um sum e agrupar com campo nclob? -- Cordialmente, *Leonardo Santos da Mata* E-mail: leonardodam...@gmail.com About.me:€ ¢Â http://about.me/leonardodamata Twitter:€ ¢Â twitter.com/lsmata
Re: [oracle_br] Instances com o mesmo nome no RAC
Fala Vitor, Na verdade, o nome das instâncias está diferente (rac7, rac8). O que está igual é o nome do Database (PDERP01), que é o mesmo para as duas instâncias no RAC. []´s Atenciosamente, Gleyson Melo 2013/12/6 Vitor Junior vitorj...@gmail.com Cenário: host8:/home/oracleoslevel -g Fileset Actual LevelMaintenance Level - bos.rte 5.3.12.15.3.0.0 SQL select * from v$version; BANNER Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi PL/SQL Release 10.2.0.3.0 - Production CORE10.2.0.3.0 Production TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio NLSRTL Version 10.2.0.3.0 - Production SQL select * from v$active_instances; INST_NUMBER INST_NAME --- 7 host7:rac7 8 host8:rac8 SQL select * from v$instance; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_T STATUS PARTHREAD# ARCHIVE LOG_SWITCH_WAIT - - --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 7 rac7 host7 10.2.0.3.003-OCT-13 OPEN YES 7 STARTED ALLOWEDNO ACTIVEPRIMARY_INSTANCE NORMALNO SQL show parameter instance_name NAME TYPEVALUE --- -- instance_namestring PDERP01 SQL SQL select * from v$instance; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_T STATUS PARTHREAD# ARCHIVE LOG_SWITCH_WAIT - - --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 8 rac8 host8 10.2.0.3.003-OCT-13 OPEN YES 8 STARTED ALLOWEDNO ACTIVEPRIMARY_INSTANCE NORMALNO SQL show parameter instance_name NAME TYPEVALUE --- -- instance_namestring PDERP01 Resumidamente, o instance_name está IDÊNTICO nos dois nodes do RAC. Alguém já tinha passado por isso? Conseguem enxergar algum efeito colateral que isso poderia causar? Também o que achei estranho foi que ao executar o show parameter retornou o nome da instance PDERP01 e ao executar um select na v$active_instances ou na v$instance o nome da instance retorna respectivamente 'rac7' e 'rac8'. Abraços. Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 https://mybizcard.co/vitor.jr.385628
Re: [oracle_br] Instances com o mesmo nome no RAC
Não tinha prestado atenção no show parameter instance_name. My Bad! Atenciosamente, Gleyson Melo Em 6 de dezembro de 2013 15:11, Gleyson Melo gleysonm...@gmail.comescreveu: Fala Vitor, Na verdade, o nome das instâncias está diferente (rac7, rac8). O que está igual é o nome do Database (PDERP01), que é o mesmo para as duas instâncias no RAC. []´s Atenciosamente, Gleyson Melo 2013/12/6 Vitor Junior vitorj...@gmail.com Cenário: host8:/home/oracleoslevel -g Fileset Actual LevelMaintenance Level - bos.rte 5.3.12.15.3.0.0 SQL select * from v$version; BANNER Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi PL/SQL Release 10.2.0.3.0 - Production CORE10.2.0.3.0 Production TNS for IBM/AIX RISC System/6000: Version 10.2.0.3.0 - Productio NLSRTL Version 10.2.0.3.0 - Production SQL select * from v$active_instances; INST_NUMBER INST_NAME --- 7 host7:rac7 8 host8:rac8 SQL select * from v$instance; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_T STATUS PARTHREAD# ARCHIVE LOG_SWITCH_WAIT - - --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 7 rac7 host7 10.2.0.3.003-OCT-13 OPEN YES 7 STARTED ALLOWEDNO ACTIVEPRIMARY_INSTANCE NORMALNO SQL show parameter instance_name NAME TYPEVALUE --- -- instance_namestring PDERP01 SQL SQL select * from v$instance; INSTANCE_NUMBER INSTANCE_NAME --- HOST_NAME VERSION STARTUP_T STATUS PARTHREAD# ARCHIVE LOG_SWITCH_WAIT - - --- -- --- --- LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO -- --- - -- - --- 8 rac8 host8 10.2.0.3.003-OCT-13 OPEN YES 8 STARTED ALLOWEDNO ACTIVEPRIMARY_INSTANCE NORMALNO SQL show parameter instance_name NAME TYPEVALUE --- -- instance_namestring PDERP01 Resumidamente, o instance_name está IDÊNTICO nos dois nodes do RAC. Alguém já tinha passado por isso? Conseguem enxergar algum efeito colateral que isso poderia causar? Também o que achei estranho foi que ao executar o show parameter retornou o nome da instance PDERP01 e ao executar um select na v$active_instances ou na v$instance o nome da instance retorna respectivamente 'rac7' e 'rac8'. Abraços. Att,/Regards, Vitor Jr. Infraestrutura / Infrastructure Team Oracle 11g DBA Certified Professional - OCP Oracle Certified Expert, Oracle Real Application Clusters 11g and Grid Infrastructure Administrator - OCE Oracle Database 11g Performance Tuning Certified Expert - OCE Oracle Exadata 11g Certified Implementation Specialist Oracle Certified Associate, MySQL 5 mail, gtalk e msn: vitorj...@gmail.com http://certificacaobd.com.br/ skype: vjunior1981 https://mybizcard.co/vitor.jr.385628
Re: [oracle_br] DEBUG - PROCEDURE
Samuel, De olho nas dicas do Chiappa aí. Complementando, o Debbuger conecta de volta na sua máquina, então ele precisa acessar o IP/Porta que vai abrir. No Linux, a galera costuma esquecer o serviço do IPTables no ar, bloqueando conexões em portas não-liberadas. Verifique se o serviço não está no ar (ou outro firewall). Atenciosamente, Gleyson Melo 2013/6/17 Samuel Santos samuel.gsan...@yahoo.com.br ** PessoALL; Alguém já teve este erro durante o DEBUG de Packages. Estou debugando pelo SQL Developer, todos os procedimentos solicitados abaixo já foi realizado nas máquinas Windows e funciona, quando tento realizar o mesmo procedimento em máquina linux, tenho o erro abaixo na tela: Procedimento executado: Answer: The oerr command shows this for the ORA-30683 error: ORA-30683: failure establishing connection to debugger Cause: An error was indicated when trying to establish a connection to a debugger. Usually a TNS error will display along with this message to further explain the problem, although this TNS error will likely be hidden if you choose to trap the error. In your case you also get the ORA-12535 operation timed outerror. Action: Correct the indicated parameter value and try again. First, make sure all the ports set in the PL/SQL Debugging Options page can be opened for external access. 1 - You could have a firewall issue. The SQL Debugger by default uses ports 4 to 49000. If you cannot get the debugger to start, make sure that you are not being blocked by a firewall on these ports. Test by turning-off software firewall or define SQL Developer to a specific port number. 2 - Change SQL Developer preferences. From main menu--'Tools -- preferences -- debugger' Check the box titled 'Prompt for debugger host for database debugging'. With this option SQL Developer ask the IP address where it is installed; this should resolve ORA-30683 errors if you are using TNS connection ; 3 - Ensure that the hostname (or IP address) are in this line Executing PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( 'hostname', '4000' ) Note: You may need to use a hostname instead of an IP address to fix the ORA-30683 error. 4 - Missing privileges: GRANT DEBUG CONNECT SESSION to myuser; GRANT DEBUG ANY PROCEDURE to myuser; 5 - Your listener process is not running or it not accepting connections. Issue thelsnrctl start command. 6 - Make sure that you are not using shared servers (the multi-threaded server) Mensagem de erro: Conectando ao banco de dados XXX. Executando PL/SQL: ALTER SESSION SET PLSQL_DEBUG=TRUE Executando PL/SQL: CALL DBMS_DEBUG_JDWP.CONNECT_TCP( '10.200.1.20', '37967' ) ORA-30683: failure establishing connection to debugger ORA-12560: TNS:protocol adapter error ORA-06512: at SYS.DBMS_DEBUG_JDWP, line 68 ORA-06512: at line 1 Processo encerrado. Desconectando do banco de dados XXX. Obs.: as máquinas windows não Atenciosamente, Samuel Geraldo dos Santos [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Dividir em instâncias ou não
Fala Celão! O ideal é primeiro você verificar quais são os gargalos do ambiente. Essa uma movimentação muito barra pesada pra decidir dessa forma. Um ponto importante pra verificar aí, por exemplo, é a concorrência no Redo Log. Se isso for um gargalo, pode valer a pena essa mudança. Talvez você tenha um número de transações absurdo. Não vejo o catálogo como um possível ofensor no seu ambiente a princípio. Se isso for um fato, provavelmente vai aparecer na sua análise de desempenho. Por isso que vale a pena partir da análise. Talvez você tenha resultados melhores com impactos menores. Atenciosamente, Gleyson Melo Em 8 de abril de 2013 22:41, Celão DBA celao...@yahoo.com escreveu: ** E ai pessoal, tudo bem? Será que podem me ajudar com uma dúvida? Eu tenho uma base na empresa que tem aproximadamente 3.500.000 de objetos de usário (views, tabelas, proc, etc, etc) que pertencem a uma aplicação de terceiros (fornecedor). Na verdade ela tem muitos objetos porque pra cada schema ela duplica todos os objetos de um schema base, então em cada schema são os mesmos objetos e são muitos schemas (aprox. 300). Quanto à estrutura dessa base não há o que discutir, tem que ser assim por N razões que não vem ao caso, mas aí vem a minha dúvida: Considerando que são MUITOS objetos (ao meu ver), existiria alguma vantagem em transformar essa base em N bases diferentes? Não uma pra cada schema, seria impossivel, mas balancear esses meus ambientes em umas 3 instâncias diferentes pra dividir a carga entre elas e facilitar a gestão disso pelo Oracle? Por exemplo, a idéia disso seria ter alguns ganhos que eu não sei se de fato existem: - Ganho de performance pelas tabelas/views de sistema serem menores - Ganho em tempo de backup, que por mais que seja o mesmo tamanho, o oracle gerenciaria menos objetos em cada backup - Distribuir o consumo de memória entre 3 instâncias onde uma consulta impactante em um schema não afetaria necessariamente todos, apenas os que existem na mesma instância O foco principal da dúvida é em relação ai primeiro item, sobre um ganho em ter uma SYSTEM com menos objetos em catalogados. Existe isso? Hoje não existe um problema de performance, até porque o hardware é muito bom, mas a idéia é otimizar ao máximo isso, se possível. Ambiente: Oracle EE 11.2.0.3 RHEL 6.3 x86_64 4 x 8 processadores 128gb de ram Valeu pessoal, Abraços! Celão [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: ORA-01113 - ORA-01110
Só um complemento do assunto. Verifique a vantagem da quebra do sincronismo do disco. Com esses storages modernos, você tem um overhead mínimo de backup (claro, usando o BEGIN...END BACKUP). Talvez a cópia com o RMAN te faça consumir muito mais recursos de máquina e te dê mais dor de cabeça em termos de performance/disponibilidade. Isso não é absoluto, mas vale observar esses detalhes e, se possível, fazer alguns testes. Atenciosamente, Gleyson Melo Em 27 de maio de 2011 14:24, Márcio Ricardo Alves da Silva marcio_...@yahoo.com.br escreveu: Beleza Welvis. É exatamente isso que você disse, os caras definem a estratégia, e não deixam eu implantar o RMAN, agora fico f... pra ter que subir essa coisa em homologação. Por esses e outros motivos, estou me desligando da empresa, então não vou brigar muito para implantar o RMAN. O que adianta você ter um DBA sendo que você não escuta ele, sendo que você não deixa ele definir as estratégias de como as coisas devem ser. Aqui o DBA só é chamado quando precisa apagar o fogo. Desculpa o desabafo pessoal, obrigado pela ajuda. Espero que daqui uns tempos minhas dúvidas sobre backup e restore, seja com o RMAN. Abraços, Márcio. - Original Message - From: wel...@stcruz.com.br To: oracle_br@yahoogrupos.com.br Sent: Friday, May 27, 2011 2:08 PM Subject: RES: [oracle_br] Re: ORA-01113 - ORA-01110 Olá, Márcio tudo bem? Como que é feito este backup? Não vi você explicando nas mensagens anteriores. Bom, meu ponto de vista sobre o assunto é: Não curto muito colocar as tablespaces do banco “bagin backup”. Para fazer um backup de um banco pequeno isso até que vai, mas quando se tem um banco grande com 800 datafiles e os outros arquivos, temp, log, constrol file, spfile ou init... enfim. Quero dizer que o risco de dar problema é alto, uma vez que eu não manjo tanto de OS assim, quero dizer Shell, ou bat para fazer os backups, sem falar que backup é algo sério e o que está feito.. deve estar integro para um restore. Claro, dependendo do ambiente tenho que fazer desta forma, mas não curto... prefiro o BOM e velho RMAN. O que vc pode fazer para melhorar este teu backup, para evitar problemas futuros é fazer uma rotina no RMAN, ele mesmo já se encarrega de copiar todos os arquivos de dados, archives, spfile. Claro, só veja essa questão do banco estar ONLINE ou OFFLINE, q isso também pode te complicar na hora do backup do RMAN. Se o seu banco está em NOARCHIVELOG e vc faz um backup dele Online, cara.. pode jogar o backup fora. Bom, sendo assim..vc pode desenvolver um rotina dessa em RMAN, pode ser com o banco On ou OFF... e peça para a “Infra” guardar os arquivos do backup RMAN. O pessoal de infra as vzs não entende muito de Oracle para saber estes detalhes técnicos, eles apenas fazem o backup.. depois o DBA que se lasque para voltar. então, verifique esta questão, claro primeiro entenda os conceitos que tanto o Marcus Vinicius, Chiappa e outros amigos da lista passou... Depois desenvolva a rotina, e passe o arquivos para os caras colocar isso na fita., agora se vc usar um DataProtector é só colocar o script lá... ou faz um scheduler ou Shell mesmo... Depois que vc tem seu backup no RMAN vc pode usar features como DUPLICATE... Espero ter ajudado. Att, Welvis Douglas De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Milton Enviada em: sexta-feira, 27 de maio de 2011 13:30 Para: oracle_br@yahoogrupos.com.br Assunto: RES: [oracle_br] Re: ORA-01113 - ORA-01110 Olá Márcio, olá pessoal Posso dar meu pitaco? Estou longe de ter a experiência da maioria aqui, mas lendo este e-mail percebi que o problema é muito mais “político” do que técnico. Pelo que entendi, a equipe de infra da tua empresa resolveu usar esta política de backup, copiando imagens inteiras dos discos, visando praticidade (pois copiando imagens inteiras, TUDO está backupeado). É isso mesmo que entendi? Acredito que você, como DBA, não precisa conflitar com esta política. Não seria possível vc implementar backups com RMAN, guardando os backups no próprio disco? Backups full, archives, controlfile fazer esses backups no mesmo disco (se houver espaço disponível, é claro), e assim eles entrariam também no backup do mirror. Ou seja, quando precisar restaurar o backup da LTO, provavelmente o banco estará corrompido, mas aí vc faz um restore/recovery do teu backup full RMAN, aplicando os archives. Assim a infra continua fazendo fazendo os backups do mirror (pra eles é transparente o fato de ter backups RMAN no meio dos dados), mas agora vc tem um backup muito mais seguro caso precise de um restore. Por favor pessoal, caso eu tenha falado alguma besteira, fiquem a vontade para me corrigir, estou aqui pra aprender! Abraços Milton De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em nome de Márcio Ricardo Alves da Silva Enviada em: quinta-feira, 26 de maio
Re: [oracle_br] Package travando
Boa tarde, Grimaldo. Como o Márcio observou, você tem certeza de que o Job rodou nesses dias? Sempre vale dar uma olhada no mais simples que parece improvável. Considerando que está rodando, a sessão está sempre executando ou esperando alguma coisa. Se ela não está fazendo nada, qual o evento de espera em que ela fica? O DBA pode ver isso na própria V$SESSION (dependendo da versão do banco) ou na v$session_wait. Caso o evento de espera fique mudando, a sessão está rodando, mesmo que lentamente. Caso ele não consiga identificar diretamente, vale a pena fazer um trace da sessão do job por alguns minutos e analisar. A gente pode elaborar várias hipóteses, mas é melhor ter a informação correta pra definir o que está acontecendo logo. Abração, Gleyson Melo Em 28 de março de 2011 12:45, Grimaldo Lopes grimaldo_lo...@hotmail.comescreveu: Caros amigos, gostaria de ajuda no seguinte problema que está apresentando na execução de alguns pacotes 1- Executamos pacotes através do DBMS_JOBS todos os dias após 00:10 2- Estes pacotes rodam durante a madrugada, e a cada dois dias não há nada específico, ele simplesmente trava, e fica como se não estivesse executando. 3- Não é o mesmo pacote, há dias que roda normal e outros dias não Estes pacotes são de cargas de tabelas Fato do DW Caros o que pode estar ocorrendo, como pesquiso este problema, segundo o DBA o pacote nada processa e não tem consumo de nada. Aguardo ajuda, obrigado. Grimaldo Lopes de Oliveira Consultor Técnico - PRODEB Prof. Universitário Estatístico pela UFBA Especialista - Análise de Sistemas pela Visconde de CairuBlog: www.bicomvatapa.blogspot.comSite: www.aprendavirtual.ninehub.comPerfil: br.linkedin.com/in/grimaldo [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Ora-12545 usando PHP
Fala Alexandre, beleza? O seu banco de dados está configurado com Shared Servers? Existe algum firewall entre o app server e o banco? Vamos a 3 hipóteses: A) Se somente a porta do listener (1521) estiver liberada, você pode ter esse tipo de problema. Caso o banco esteja configurado como Shared Server, que é um pool de processos, cada um vai ter uma porta específica e se essa porta não estiver liberada, você pode ter um problema. B) Outra coisa, verifique se você consegue conectar tanto no IP de administração quanto no endereço VIP. Caso você não esteja usando Shared Server para essa conexão e tente conectar, podem ocorrer duas coisas: 1. Se o LISTENER calcular que o nó que você tá conectando é o servidor com melhor disponibilidade, você vai conectar direto nele, através de bequeath e sem precisar criar um novo socket. Esse pode ser o caso em que a conexão funciona. 2. Se o LISTENER calcular que o outro nó é melhor, ele vai te passar o endereço administrativo do outro nó, que pode estar barrado pelo firewall (vamos lá, é só uma hipótese). Este pode ser o momento em que não funciona. E essa variação pode ocorrer toda hora. C) Também pode estar ocorrendo do listener estar te mandando o hostname da máquina à qual você precisa conectar e o app server não consegue resolvê-lo. Aí é verificar se isso tá configurado no dns ou no arquivo hosts da máquina. Se nada disso ajudar, envie os parâmetros de listener e o arquivo listener.ora e informe como essa rede tá configurada e como o app server conecta no banco. Abração. Atenciosamente, Gleyson Melo Em 13 de agosto de 2010 13:14, Alexandre Rocha Plácido aplacido.ora...@gmail.com escreveu: Alguém da lista que use PHP. Temos uma aplicação de terceiros aqui que está com seguinte comportamento. Ora conecta, ora dá o referido erro. O TNSping retorna tudo ok. Usamos RAC e já testamos trabalhar sempre com um dos nós ao invés do RAC mas acontece a mesma coisa. O banco é o 11g RAC, alguém já passou por isso? [cid:image001.jpg@01CB3AE9.6B375350 image001.jpg%4001CB3AE9.6B375350] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Problemas Insert x Caracter Especial
Oi Adalberto, vou explorar mais ainda a dúvida sobre o EXP.. Você tá fazendo importação sem linhas e depois importando com um SELECT criado, digamos, na marra. Porque você não faz o import com linhas? Você deixa uma versão inicial do banco sempre atualizada com o sistema e pronta para ser exportada. E, se você puder e tiver tempo, mude pro Data Pump Export ao invés do export convencional (EXP). Ele é muito mais completo, performático, flexível e fácil de gerenciar problemas. Para tentar fazer funcionar do jeito que você já tá trabalhando, antes dos INSERTs, defina o charset igual ao do banco setando a variável de ambiente NLS_LANG, conforme o meu exemplo (de brincadeira) abaixo: C:\Users\Gleysonset NLS_LANG='AMERICAN_BRAZIL.AL32UTF8'; E depois, no sqlplus: SQL select * from nls_session_parameters; PARAMETER VALUE -- -- NLS_LANGUAGE AMERICAN NLS_TERRITORY BRAZIL NLS_CURRENCY R$ NLS_ISO_CURRENCY BRAZIL NLS_NUMERIC_CHARACTERS ,. NLS_CALENDAR GREGORIAN NLS_DATE_FORMATDD/MM/RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMATHH24:MI:SSXFF NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF PARAMETER VALUE -- -- NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR NLS_TIMESTAMP_TZ_FORMATDD/MM/RR HH24:MI:SSXFF TZR NLS_DUAL_CURRENCY Cr$ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCPFALSE 17 rows selected. O client Oracle utiliza a variável de ambiente com o mesmo nome do parâmetro NLS para definir o seu valor. Aí, com o NLS_LANG batendo corretamente com o banco, creio que você tenha menos chance de ter problema. Isso é só um palpite mesmo, mas eu apostaria no Data Pump. Com isso você resolveria problemas com tipos mais elaborados, como BLOB também. Abraços. Atenciosamente, Gleyson Melo Em 30 de julho de 2010 10:43, Adalberto de Sousa Monteiro asm...@gmail.comescreveu: Bom dia meu velho ... novamente, obrigado pela ajuda. Vamos la... espero conseguir explicar ... A ideia seria criar o banco de dados via software, dessa forma executo da minha base de desenvolvimento um EXPORT de um determinado Owner, gerando um DMP com o parametro rows=N Exemplo da Linha de Comando: exp ophiuchus/sys...@xe file=c:\EXP_TA.DMP log=c:\EXP_TA.LOG owner=ophiuchus compress=Y grants=Y indexes=Y triggers=Y constraints=Y rows=N No sistema existem algumas tabelas padrões, exemplo, uma tabela de botoes. Após o export, executo um select nessa tabela e crio um script com a linha de comando INSERT para cada registro. Exemplo da Linha: INSERT INTO TABOTAO(DS_BMP, DS_CAPTION, DS_FONTE, DS_HINT, DS_LAYOUT, FL_ATIVO, FL_BLQSYS, FL_ENABLE, FL_FLAT, FL_FONTE_NEGRITO, FL_SHOWHINT, FL_VISIVEL, ID_BOTAO, NM_BOTAO, QT_ALTURA, QT_COMPRIMENTO, QT_FONTE_TAMANHO, QT_LARGURA, QT_ORDEM) VALUES ('CONFIGPROG.BMP', '', 'ARIAL', 'CONFIGURAÇÃO DO PROGRAMA', 'BLGLYPHTOP', 'S', 'hExkYog/+ww=', 'S', 'S', 'S', 'S', 'S', 228, 'BTNCONFIGPROG', 5, 35, 8, 35, 0) Dessa forma, envio ao cliente os arquivos do sistema, um DMP e um arquivo com todos os INSERT´s necessarios. O cliente seguiria a seguinte rotina: Instalar o Oracle XE (Next / Next), definindo uma senha para o SYSTEM de seu banco. Acessa o software que desenvolvi com a senha do SYSTEM e nele executo o IMP do DMP, aonde serão criados todos os objetos sem nenhum registro. Ao termino executo o comando EXECUTE DBMS_UTILITY.COMPILE_SCHEMA('USER'); no intuito de compilar todos os objetos (Seria necessario? Nao sei, rs). Na sequencia, via sistema abro o arquivo TEXTO e começo a pegar linha a linha (Insert) e executar nesse novo banco de dados. É nesse momento que estou tendo problemas e somente com alguns caracteres, a principio identifiquei que seria o Ç , pois outros registros foram inseridos, tendo ~ , exemplo. A versão do banco seria: Oracle® Database Express Edition Getting Started Guide 10g Release 2 (10.2) B25610-01 Estive pesquisando select * from nls_database_parameters e obtive o seguinte resultado: *PARAMETER* *VALUE* NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET AL32UTF8 NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_LENGTH_SEMANTICS BYTE NLS_NCHAR_CONV_EXCP FALSE NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_RDBMS_VERSION 10.2.0.1.0 Preciso alterar algo? Porque os registros na base original (de
Re: [oracle_br] Problemas Insert x Caracter Especial
Você pode fazer isso usando Export (preferencialmente Data Pump). Você exporta os dados pra um arquivo e importa no outro banco. Isso atenderia? Existe algum requisito a mais que impeça isso? Essa rotina vai ser executada automaticamente ou manualmente? Ah, qual a versão do seu banco? Abraços. Atenciosamente, Gleyson Melo Em 29 de julho de 2010 16:04, Adalberto de Sousa Monteiro asm...@gmail.comescreveu: Fala rapaz, valeu pelo retorno. Então, aonde e como confiro o charset ? Estou utilizando o Delphi 7 com o componente de acesso ODAC, conhece? O estranho é que se eu pegar a linha de comando e executar via PL/SQL Developer, funciona corretamente. Lembrando que essa linha de comando é gerada apartir de dados do mesmo banco de dados, ou seja, tenho um banco de dados de desenvolvimento, aonde vou inserindo alguns dados em tabelas funcionais ao sistema. Depois monto uma rotina que gera um TXT com base nessas tabelas montando a linha de comando do INSERT. O que quero fazer é simplesmente retornar esses dados de volva ao banco, porem em um banco aonde as tabelas estão vazias. Abraços e obrigado, Em 29 de julho de 2010 14:50, Gleyson Melo gleysonm...@gmail.com escreveu: Qual é o Charset do seu XE? Você baixou aquele básico? Unicode? Você tem que gerenciar o problema de Charset nas camadas de comunicação com o banco. Você pode considerar a geração de um arquivo texto e a carga dos dados através de sql*loader, dependendo do seu problema. Que linguagem você tá usando? Tá usando que componentes diretamente no código? ADO? Abraços. Atenciosamente, Gleyson Melo Em 28 de julho de 2010 15:56, Adalberto de Sousa Monteiro asm...@gmail.com asm190%40gmail.comescreveu: Pessoal, boa tarde. Estou desenvolvendo um programa para executar alguns INSERT´s em uma base ORACLE. Estou utilizando Oracle XE e drive de acesso ODAC. Crio em tempo de execução um componente para Query : OraQryKey : TOraQuery; Leio um arquivo texto aonde contem as sintaxes de INSERT. Cada sintaxe eu executo da seguinte maneira: OraQryKey.SQL.Clear; OraQryKey.SQL.Text := vs_Linha; OraQryKey.Execute; Para algumas sintaxes, estou tendo como resultado o seguinte erro: ORA-00917: missing comma Essa é uma linha que me retorna o erro: INSERT INTO TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO, ID_LAYOUT, NM_COLUNA, NM_TABELA, NR_ORDEM) VALUES ('Complemento do Endereço', 'S', 12, 'DS_COMPLEMENTO', 'TAENTIDADE_TEMP', 5) Caso eu altere o Endereço para Endereco e executo, funcionamento perfeitamente. Em outros casos, tenho o seguinte erro: ORA-00911: invalid character Quando a sintaxe esta dessa forma: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Iniciar / Pausar Serviço', '$00FFB7B7', '', '', 'N', 10, 'FORM_STARTSTOP', 0, 575, 180) E quando altero para essa forma, funciona: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Iniciar / Pausar Servico', '$00FFB7B7', '', '', 'N', 10, 'FORM_STARTSTOP', 0, 575, 180) Alterando somente o Serviço para Servico. Alguem saberia me dizer porque? Porém outros inserts com caracteres desse tipo, vai numa boa, até mesmo para a mesma tabela, como o exemplo abaixo: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Manutenção de Ações', '$00FFB7B7', '', '', 'N', 27, 'FORM_CADACAO', 0, 800, 410) INSERT INTO TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO, ID_LAYOUT, NM_COLUNA, NM_TABELA, NR_ORDEM) VALUES ('DATA DA ULTIMA ALTERAÇÃO DO REGISTRO', 'N', 18, 'DT_ALTERACAO', 'TAENTIDADE_TEMP', 0) Utilizo para acesso o banco de dados o PL/SQL Developer e se executo a mesma linha diretamente por ele, insere tranquilamente. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- 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
Re: [oracle_br] ARQUIVO XML
Fala Élcio, Você precisa necessariamente gerar o XML num arquivo? Você poderia utilizar a saída de um cursor com valores XMLType. Você tá trabalhando com XMLType? Aí você faz um loop nesse cursor e sai mandando a saída direto pro usuário. Claro que isso depende muito do contexto, formato relatório gerado, versão do banco, conectividade do PHP com o Oracle (que eu não conheço nada) e outros fatores que você pode não ter mencionado por aqui. Se você estiver numa hospedagem remota, pode ser meio complicado isso, já que você vai ter pouco controle sobre a infra-estrutura. Se for um ambiente empresarial, pode ser um pouco mais fácil mas essa gravação de arquivo é uma camada a mais que você deve evitar se puder. Abraços. Atenciosamente, Gleyson Melo Em 30 de julho de 2010 12:05, Elcio Francisco elciofranci...@yahoo.com.brescreveu: Pessoal Preciso Criar arquivo xml para montar um relatorio via php porem estou conseguindo alguem pode me ajudar.? Tem como gerar esse arquivo sem deixar diretorio fixo??? Não sei se posso usar UTL_FILE esta é minha tabela que terei que mostrar os dados em um formulario que esta em PHP. pensei no xml por ser mais facil Obrigado select bp.numero ,bp.prestacao ,bp.local_pagamento ,bp.vencimento ,rtrim(bp.cedente) ,bp.data_processamento ,bp.data_emissao ,rtrim(bp.especie_documento) ,bp.especie_moeda ,rtrim(bp.aceite) ,bp.carteira ,rtrim(bp.valor_documento) ,bp.consumidor ,rtrim(bp.nome_consumidor) ,rtrim(bp.endereco1_consumidor) ,rtrim(bp.endereco2_consumidor) ,rtrim(bp.mensagem1) ,rtrim(bp.mensagem2) ,rtrim(substr(bp.mensagem3,1,48)) ,rtrim(substr(bp.mensagem3,51,15))||rtrim(bp.mensagem4) ,bp.mensagem5 ,bp.mensagem6 ,bp.parcela ,bp.documento from crd.tabela bp Elcio [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Problemas Insert x Caracter Especial
Qual é o Charset do seu XE? Você baixou aquele básico? Unicode? Você tem que gerenciar o problema de Charset nas camadas de comunicação com o banco. Você pode considerar a geração de um arquivo texto e a carga dos dados através de sql*loader, dependendo do seu problema. Que linguagem você tá usando? Tá usando que componentes diretamente no código? ADO? Abraços. Atenciosamente, Gleyson Melo Em 28 de julho de 2010 15:56, Adalberto de Sousa Monteiro asm...@gmail.comescreveu: Pessoal, boa tarde. Estou desenvolvendo um programa para executar alguns INSERT´s em uma base ORACLE. Estou utilizando Oracle XE e drive de acesso ODAC. Crio em tempo de execução um componente para Query : OraQryKey : TOraQuery; Leio um arquivo texto aonde contem as sintaxes de INSERT. Cada sintaxe eu executo da seguinte maneira: OraQryKey.SQL.Clear; OraQryKey.SQL.Text := vs_Linha; OraQryKey.Execute; Para algumas sintaxes, estou tendo como resultado o seguinte erro: ORA-00917: missing comma Essa é uma linha que me retorna o erro: INSERT INTO TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO, ID_LAYOUT, NM_COLUNA, NM_TABELA, NR_ORDEM) VALUES ('Complemento do Endereço', 'S', 12, 'DS_COMPLEMENTO', 'TAENTIDADE_TEMP', 5) Caso eu altere o Endereço para Endereco e executo, funcionamento perfeitamente. Em outros casos, tenho o seguinte erro: ORA-00911: invalid character Quando a sintaxe esta dessa forma: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Iniciar / Pausar Serviço', '$00FFB7B7', '', '', 'N', 10, 'FORM_STARTSTOP', 0, 575, 180) E quando altero para essa forma, funciona: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Iniciar / Pausar Servico', '$00FFB7B7', '', '', 'N', 10, 'FORM_STARTSTOP', 0, 575, 180) Alterando somente o Serviço para Servico. Alguem saberia me dizer porque? Porém outros inserts com caracteres desse tipo, vai numa boa, até mesmo para a mesma tabela, como o exemplo abaixo: INSERT INTO TAPROGRAMA(DS_CAPTION, DS_COLOR_TITULO, DS_HELP, DS_HINT, FL_ITEMDEC, ID_PROGRAMA, NM_PROGRAMA, NR_ITEMPRINC, QT_COMPRIMENTO_TELA, QT_LARGURA_TELA) VALUES ('Manutenção de Ações', '$00FFB7B7', '', '', 'N', 27, 'FORM_CADACAO', 0, 800, 410) INSERT INTO TAENTIDADE_TEMP_LAYOUT(DS_COLUNA, FL_ATIVO, ID_LAYOUT, NM_COLUNA, NM_TABELA, NR_ORDEM) VALUES ('DATA DA ULTIMA ALTERAÇÃO DO REGISTRO', 'N', 18, 'DT_ALTERACAO', 'TAENTIDADE_TEMP', 0) Utilizo para acesso o banco de dados o PL/SQL Developer e se executo a mesma linha diretamente por ele, insere tranquilamente. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tamanho Datafiles - discussão
Fala Luiz! Cara, dependendo de como for a distribuição dos datafiles nos filesystems, pode ser vantajoso você ter datafiles menores. Você pode, por exemplo, mover um arquivo para outro disco, mesmo que temporariamente, se estiver com problemas de espaço. Quaisquer operações de arquivos que você fizer serão mais rápidas e você pode fazer por etapas. Se você quiser rodar comandos de arquivo como o DBV, passa pelos mesmos problemas mencionados acima. Se você tiver uma tabela bem grande e particionada, pode ser interessante separar os dados por tablespaces ao invés de ter uma gigantona. Com isso você facilita possíveis expurgos e consegue mover dados históricos pra discos mais baratos (menos performáticos :S). Você pode ter uma melhora de performance se puder distribuir os datafiles entre discos diferentes, mas acredito que não seja o seu caso porque eu acho que você já pensou nisso. Fora isso, problema de operação mesmo, não vejo nenhum no momento. Abraços. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional Em 5 de julho de 2010 11:52, Luiz Antonio Camargo luizla...@gmail.comescreveu: Bom Dia Queria abrir uma pequena discussão baseada na experiência que todos aqui já tiveram com tamanho de DATAFILE. Encontro inúmeras bases com datafile de 2GB que estouram o tamanho e ganhamos dinheiro colocando mais um datafile de 2GB, rss. Ok, mas se o limite é 32GB, porque limitar? Já ouvi dizer que é devido ao ZIP do Linux que compacta só até 2GB (ou 4GB, não me recordo), já ouvi dizer que é por limitação de transferência de arquivo para FAT32, etc. Mas tudo que ouvi que limitava são coisas obsoletas, como esse zip, já que hoje temos o GZIP e ainda mais, já que não é recomendado compactar qualquer backup devido ao tempo de recuperação. Ok, então vou deixar a tbs com 32GB. Mas dai muito falam que isso pode interferir no desempenho da base de dados, ou que é melhor voltar 5 arquivos de 2GB de uma fita do que 1 de 10GB, se perder um arquivo, perde tudo, etc. O que vocês acham de tudo isso levando em conta que a base está protegida por um backup diário de RMAN, possui tabelas grandes e médias, tbs de índice e dados, etc... [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Oracle ERP DBA Course
Acredito que seja algum software percorrendo listas com a palavra Oracle. Atenciosamente, Gleyson Melo Em 3 de maio de 2010 09:39, Raul Francisco Costa F. de Andrade, DBA raulf...@gmail.com escreveu: He he he confesso que também não entendi!!! []'s Raul Em 3 de maio de 2010 09:32, Cyro cyrocu...@gmail.comcyrocunha%40gmail.com escreveu: Acho que não é muito interessante oferecer cursos do Egito numa lista de discursão brasileira. Acho que sai um pouco caro fazer esse curso lá. 2010/5/2 Euro Soft eurosofteg...@yahoo.com eurosoftegypt%40yahoo.comeurosoftegypt% 40yahoo.com EurosoftAcademy Hwoto be OracleERP DBA? System Administrator Fundamentals (E-Business Suite) 40 Hours R12 Oracle: Install, Patch, and Maintain Oracle Applications (E-Business Suite) 40 Hours Address: -24 Ibn El-Walled St. In the Opposite of Shooting Club-Gate #10 Mohandseen -Egypt. 24 بن الوليد – امام بوابة 10 نادي الصيد - المهندسين Tel: -+202 333 64 306 – 011 96 70 974 - 0101334319 Web site:-www.eurosoft-eg.com i...@eurosoft-eg.com Info%40eurosoft-eg.com Info%40eurosoft-eg.com Info%40eurosoft-eg.com [As partes desta mensagem que não continham texto foram removidas] -- Att, Cyro [As partes desta mensagem que não continham texto foram removidas] -- -- Raul Francisco da Costa Ferreira de Andrade DBA - OCA - Oracle Certified Associate COBIT Foundation 4.1 Fone: (41)8855-8874 Brt email: raulf...@gmail.com raulfdba%40gmail.com Skype: raul.andrade www.clickdba.com Não somos seres humanos passando por uma experiência espiritual Somos seres espirituais passando por uma experiência humana. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] como verificar se o conteúdo armaze nado no campo é string ou numérico
Fala Leonardo, Faz um TO_NUMBER() na coluna. Se der exceção, é string, senão é número. Aí é só tratar a exceção. Atenciosamente, Gleyson Melo Em 29 de abril de 2010 15:49, Leonardo Santos da Mata leonardodam...@gmail.com escreveu: ei pessoal, eu estou trabalhando no oracle 10 g e gostaria de saber o seguinte: O tipo do campo na tabela é string. Porém neles tem armazenados valores numéricos e valores string. Eu gostaria de saber se tem como verificar se o conteúdo armazenado no campo é string ou numérico? Obrigado pela ajuda. -- Att, Leonardo Santos da Mata [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Erro de mês invalido na execução de uma package em um Job.
Fala Thiago, Verifica os pontos onde você manipula datas no código, principalmente fazendo conversão pra varchar2. Garanta que todas as conversões tenham o formato. Ex: *TO_DATE('30/04/10', 'DD/MM/YY')* Se não resolver, verifica se todos os dados no formato data sendo manipulados estão íntegros. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional Em 28 de abril de 2010 11:10, Thiago Menon thime...@yahoo.com.br escreveu: Olá, Estou tendo um problema na execução de uma procedure dentro de uma package de mês invalido ORA-01843: not a valid month . O interessante é que quando executo a mesma procedure pela package funciona sem problema. O que pode ser? Algum configuração de formato data do banco para execução da package no job? Como mudar ou setar? Estou utilizando o ORacle 10.2.0.3.0 e job através do DataBase Control Obrigado pela ajuda de todos Thiago Menon __ Faça ligações para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Resultados diferentes com o mesmo select
Olá Alexandre, Tem tudo a ver com privilégios. A view ALL_TABLES só mostra as tabelas que o usuário tem privilégio de acesso. Como a sua subconsulta filtra por essa view, os dados dependem de qual usuário está executando. Atenciosamente, Gleyson Melo Em 30 de abril de 2010 16:12, Alexandre Rocha Placido aplacido.ora...@gmail.com escreveu: O que faria o seguinte select trazer linhas diferentes quando mudamos de usuários? Select a.*, a.Rowid From Auditoria.Tabelas_Auditadas_t a Where a.Schema_Id = 'SISTI' And Not Exists (Select * From All_Tables t Where 'SISTI' = t.Owner And a.Table_Name = t.Table_Name) Deve ter algo a ver com permissão, conceção de privilégio, só que eu não estou conseguindo enxergar o que é. Meu banco é 11g RAC Slide1 [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] optimizer goal - dúvidas
Fala Márcio, Segue o link para a documentação desse item no 10g: http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/optimops.htm#i38318 Quando você escolhe o rule, o otimizador utilizado (RBO) não considera estatísticas e por isso tem um comportamento diferente. A operação mais lógica seria o uso de índices pelo RBO e não pelo CBO (outras opções), mas isso depende do seu cenário. Pra responder com detalhes, você precisaria enviar: 1. A consulta SQL 2. Os planos de execução pra cada objetivo do otimizador 3. As estatísticas dos objetos envolvidos (tabelas, índices, ...) Abraços. Atenciosamente, Gleyson Melo Em 8 de abril de 2010 11:43, Márcio Ricardo Alves da Silva marcio_...@yahoo.com.br escreveu: Boas. No optimizer goal, tenho as opções: Choose, First rows, All rows e Rule. Queria saber porque quano seleciono a opção rule, em algumas querys mostra FULL TABLE na tabela, sendo que quando coloco outras opções é utilizado o índice. E também, um material/link com a explicação de cada opção. Grato, Márcio. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] ** Alteração de porta **
Ellison, Você precisa modificar o parâmetro LOCAL_LISTENER para apontar pra esse TNS local. Já tá assim? Isso ocorre porque é a instância quem se registra no listener. E como você tirou do padrão, ele não sabe mais onde conectar para se registrar. Outra opção é você registrar a instância diretamente no listener.ora, mas eu não acho boa prática (IMHO, como diria o Chiappa). Atenciosamente, Gleyson Melo Em 25 de março de 2010 11:37, Robson Muniz (Terra) rmunizso...@terra.com.br escreveu: Bom dia pessoal… Estou simulando um processo de troca de porta padrão 1521, para um outro número... nesse caso a 1525. Atualmente, meu listener e tns, encontram-se como abaixo Listener LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) ) ) TNS… LOCAL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = local) ) ) Alterei ambos conforme abaixo, reinicializei o listener, e ao tentar me conectar no sql plus, ocorre o erro no final Existe algo mais a verificar para tratar essa troca de porta de conexão? Listener LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1525)) ) ) TNS… LOCAL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1525)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = local) ) ) ** Erro após alteração mostrada acima, e reinicialização do listener... SQL conn system/lo...@local ERROR: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor SQL Existe algum local a mais a alterar? Obrigado, Robson [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Ajuda em Tuning de PL/SQL
Se eu entendi a sua procedure, você está querendo fazer um merge de dados de um arquivo com os dados de duas tabelas existentes no sistema, certo? Se for isso, você poderia usar o próprio comando MERGE do Oracle e fazendo só uma carga usando EXTERNAL TABLES. Em caso de dúvidas sobre como fazer isso, a gente continua a discussão. Atenciosamente, Gleyson Melo Em 19 de março de 2010 12:41, Jose Luis Ramos jose.ramos.caj...@gmail.comescreveu: Pessoal, preciso de uma ajuda em um PL/SQL que, segundo meus cálculosvai demorar 3 dias para rodar. É inviável. O processo é uma migração de dados entre dois sistemas. Eu carrego primeiramente a tabela CARGA_PORTABILIDADE (através do SQL*LOADER) e depois em cima desta tabela eu executo um PL/SQL para preencher duas outras tabelas pertencentes ao sistema para o qual os dados estão sendo migrados (SERV_PORTABILIDADE_TMP E SERV_PORTABILIDADE_CRIADO_TMP). Ja fiz alguns ajustes que melhorarm um pouco, mas não muito. Alterei os seguintes parâmetros: CUROR_SHARING=SIMILAR OPTIMIZER_INDEX_CACHING=70 OPTIMIZER_INDEX_COST_ADJ=30 PGA_AGGREGATE_TARGET=5g OPTIMIZER_MODE=ALL_ROWSS (esta o default) CURSOR_SPACE_FOR_TIME=TRUE SESSION_CACHED_CURSOR=500 além disse coloquei os índices em tablespace separada das tabelas e criei um JOB que recalcula as estatísticas para as tabelas deste SCHEMA para rodar de 5 em 5 minutos. O Servisor é um HP que tem 60GB de RAM , dois processadores dual core e 4 discos de 300GB em RAID 0+1. O código do PL/SQL qu executo está abaixo. O SQL*LOADER não é o gargalo. Roda em alguns minutos. O total de registros que devem ser processados pelo PL/SQL é de 4milhões de linhas. Se alguém puder me dar alguma dica eu agradeço muito. Abraços. CREATE OR REPLACE procedure PROC_PORTABILIDADE is CURSOR C_CARGA IS SELECT * FROM CARGA_PORTABILIDADE; CURSOR C_PORT IS SELECT * FROM SERV_PORTABILIDADE_TMP; v_count NUMBER; sql1 varchar2(255) := 11; REG_CARGA C_CARGA%ROWTYPE; REG_PORT C_PORT%ROWTYPE; t1 varchar2(1600) := ''; t2 varchar2(1600) := ''; BEGIN sql1 := 'TRUNCATE TABLE SERV_PORTABILIDADE_TMP'; execute immediate sql1; sql1:= 'TRUNCATE TABLE SERV_PORTABILIDADE_CRIADO_TMP'; execute immediate sql1; OPEN C_CARGA; LOOP FETCH C_CARGA INTO REG_CARGA; EXIT WHEN C_CARGA%NOTFOUND; OPEN C_PORT; LOOP FETCH C_PORT INTO REG_PORT; V_COUNT := 0; SELECT /*+ index(carga_portabilidade IDX_NTL_CARGA_PORTAB_TMP) index(SERV_PORTABILIDADE_TMP IDX_NTL_SERV_PORTAB_TMP */ COUNT(1) INTO V_COUNT FROM SERV_PORTABILIDADE_TMP WHERE REG_CARGA.NTL = SERV_PORTABILIDADE_TMP.NTL; IF (REG_CARGA.NTL IS NOT NULL) AND (V_COUNT IS NULL OR V_COUNT = 0) THEN INSERT INTO SERV_PORTABILIDADE_TMP VALUES(SERV_PORTABILIDADE_SEQ_TMP.NEXTVAL, 0, REG_CARGA.DATA_CRIACAO, REG_CARGA.ULTIMA_ATUALIZACAO, REG_CARGA.ULTIMA_OPERACAO, REG_CARGA.NTL, REG_CARGA.OPC, REG_CARGA.rn1, REG_CARGA.cnl, REG_CARGA.NUF, REG_CARGA.TPB, REG_CARGA.CPT, REG_CARGA.EIP, REG_CARGA.NUE, REG_CARGA.TBR, REG_CARGA.CRE); INSERT INTO SERV_PORTABILIDADE_CRIADO_TMP VALUES(SERV_PORTABILIDADE_SEQ_TMP.CURRVAL, REG_CARGA.SIGLA_ER, REG_CARGA.OBJ_SAIDA, REG_CARGA.DATA_CRIACAO, REG_CARGA.ULTIMA_ATUALIZACAO, REG_CARGA.ULTIMA_OPERACAO); ELSE IF REG_CARGA.NTL = REG_PORT.NTL THEN INSERT INTO SERV_PORTABILIDADE_CRIADO_TMP VALUES(REG_PORT.ID, REG_CARGA.SIGLA_ER, REG_CARGA.OBJ_SAIDA, REG_PORT.DATA_CRIACAO, REG_PORT.ULTIMA_ATUALIZACAO, REG_PORT.ULTIMA_OPERACAO); t1 := REG_CARGA.Opc|| REG_CARGA.Rn1|| REG_CARGA.Cnl|| REG_CARGA.Nuf|| REG_CARGA.Tpb|| REG_CARGA.Cpt|| REG_CARGA.Eip|| REG_CARGA.Nue|| REG_CARG A.TBR|| REG_CARGA.Cre; t2 := REG_PORT.Opc || REG_PORT.Rn1 || REG_PORT.Cnl || REG_PORT.Nuf || REG_PORT.Tpb || REG_PORT.Cpt || REG_PORT.Eip|| REG_PORT.Nue|| REG_PORT.T BR|| REG_PORT.Cre; IF t1 t2 then INSERT INTO SERV_PORTABILIDADE_LOG VALUES(REG_PORT.ID, REG_CARGA.NTL, REG_CARGA.OPC, REG_CARGA.rn1, REG_CARGA.cnl, REG_CARGA.NUF, REG_CARGA.TPB, REG_CARGA.CPT, REG_CARGA.EIP, REG_CARGA.NUE, REG_CARGA.TBR, REG_CARGA.CRE, REG_CARGA.SIGLA_ER, REG_CARGA.OBJ_SAIDA); END IF; END IF; END IF; EXIT WHEN C_PORT%NOTFOUND; END LOOP; COMMIT; CLOSE C_PORT; END LOOP; CLOSE C_CARGA; EXCEPTION WHEN DUP_VAL_ON_INDEX THEN NULL; WHEN OTHERS THEN NULL; END; / -- Jose Luis Ramos Jr Campinas - SP Oracle OCP DBA 8i, 9i,10g Fone: 19-37056793 [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Diferença de performance
Fala Alexandre! Com certeza isso depende de alguns fatores mas vamos às considerações: - As consultas podem gerar planos de execução diferentes. O otimizador é o seu ponto de análise. - O otimizador entende o uso do *LIKE* e, com isso, pode gerar um plano de execução mais inteligente do que poderia com o *INSTR*. Ele não sabe o que o INSTR faz e não usa índices, a menos que você crie um índice baseado em função. Com o like, o otimizador considera o uso de índices. - Esse símbolo de percentual no *INSTR* não é avaliado. Inclusive ele deve estar atrapalhando o resultado. Você testou isso? - Com as novas versões do Oracle, o otimizador vai evoluindo e pode ficar mais inteligente pro *LIKE*. Mas pra funções ele continua limitado. É possível que ele analise algumas funções não-agregadas como essa, mas isso não é muito provável. - Considere o uso de índices do Oracle Text para essa coluna. Aproveite e dê uma lida na documentação do INSTR e do Oracle Text, além de um mini-tutorial sobre como criar esse índice: http://www.oracle.com/pls/db102/to_URL?remark=rankedurlname=http:%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FB19306_01%2Fserver.102%2Fb14200%2Ffunctions068.htm%23SQLRF00651 http://download.oracle.com/docs/cd/B28359_01/text.111/b28303/ind.htm http://www.orafaq.com/node/1918 Abração, Gleyson Melo Oracle Database 10g Administrator Certified Professional Em 17 de março de 2010 16:45, Alexandre Rocha Placido aplacido.ora...@gmail.com escreveu: Alguém poderia afirmar se os dois selects abaixo tem diferença de performance significativa. O resultado final é o mesmo. Select * From fichafinanc_header f Where f.fihtipofolha Like '%r%' Select * From fichafinanc_header f Where instr(f.fihtipofolha,'%r%') 0 Slide1 [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Carga de I/O
Fala Fábio! Sugiro que você dê uma olhada na *DBA_HIST_FILESTATXS*. Essa view é parte do AWR e contém estatísticas de leituras e escritas em datafiles. Para transações, eu sugiro que você olhe a *DBA_HIST_SYSSTAT*, que contém o histórico de diversas estatísticas globais do sistema, inclusive algumas como user commits e user rollbacks. SQL desc DBA_HIST_FILESTATXS Nome Nulo?Tipo - SNAP_IDNUMBER DBID NUMBER INSTANCE_NUMBERNUMBER FILE# NUMBER CREATION_CHANGE# NUMBER FILENAME VARCHAR2(513) TS#NUMBER TSNAME VARCHAR2(30) BLOCK_SIZE NUMBER PHYRDS NUMBER PHYWRTSNUMBER SINGLEBLKRDS NUMBER READTIMNUMBER WRITETIM NUMBER SINGLEBLKRDTIM NUMBER PHYBLKRD NUMBER PHYBLKWRT NUMBER WAIT_COUNT NUMBER TIME NUMBER *Estatísticas* SQL select statistic#, name from v$statname where statistic# in (4, 5); STATISTIC# NAME -- -- 4 user commits 5 user rollbacks SQL SQL select snap_id, instance_number, stat_id, STAT_NAME, value from dba_hist_sysstat where stat_name like 'user commits' or stat_name like 'user rollbacks' 2 SQL set pause on SQL / SNAP_ID INSTANCE_NUMBERSTAT_ID -- --- -- STAT_NAME VALUE -- 553 1 3671147913 user rollbacks0 554 1 582481098 user commits 30 550 1 582481098 user commits 6 Atenciosamente, Gleyson Melo Em 28 de janeiro de 2010 09:51, Fábio Telles Rodriguez fabio.tel...@gmail.com escreveu: Senhores, gostaria de saber qual é a proporção entre Leitura e escrita no meu servidor e qual o volume diário de transações por dia nele. Estou usando O Oracle 10.2.0.4 RAC SE em HP-UX. Alguém tem algum script na manga para me ajudar? Ou em quais GV$ eu consigo estas informações? Atenciosamente, Fábio Telles -- blog: http://www.midstorm.org/~telles/ e-mail / jabber: fabio.tel...@gmail.com fabio.telles%40gmail.com [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tuning de query
Oi Alex, Mande as DDLs das tabelas e índices e também estatísticas das duas (na *DBA_TABLES *e* DBA_INDEXES*). Abraços. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2010/1/26 Alex Oracle alex80.li...@yahoo.com.br Ola pessoal, estou tendo dificuldades em acertar o tuning de uma query. Analisando abaixo, dá pra ver um possível índice com duas colunas (alias 'cleb'). O indice está criado, mas com qualquer método no otimizador, ele não usa, nem se forçar o uso. Para as duas tabelas está fazendo full scan. A tabela com alias 'clet' também tem indice na coluna Line_ID, mas tbem não usa. As estatísticas foram coletadas. Alguém poderia me indicar possíveis pontos que devo investigar?!? O banco é 11gR2 em Solaris Sparc. Desde já agradeço a ajuda. Alex SELECT CLEB.LINE_ID, cleb.CLE_ID, cleb.LSE_ID, clet.COVERAGE_NAME FROM SDW_CO_IBIS_CONTRACT_LINE cleb, SDW_CO_IBIS_SERVICE_COVERAGE clet WHERE CLEB.LSE_ID IN (2, 15, 20) AND CLEB.LINE_ID = CLET.LINE_ID (+) EXPLAIN_PLAN OPERATION OBJ_NAME COST CARDINALITY - --- SELECT STATEMENT 4006 3344103 PX COORDINATOR PX SEND :TQ10002 4006 3344103 HASH JOIN - RIGHT OUTER BUFFERED 4006 3344103 PX RECEIVE 1021 2931768 PX SEND - HASH :TQ1 1021 2931768 PX BLOCK - ITERATOR 1021 2931768 TABLE ACCESS - FULL SDW_CO_IBIS_SERVICE_ 1021 2931768 PX RECEIVE 2931 3344103 PX SEND - HASH :TQ10001 2931 3344103 PX BLOCK - ITERATOR 2931 3344103 TABLE ACCESS - FULL SDW_CO_IBIS_CONTRACT 2931 3344103 __ 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] Re: Tuning de query
Alex, A tabela contém somente essas linhas ou isso são dados de exemplo pra testar o uso dos índices? Mande também as estatísticas. Abraços. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2010/1/26 Alex Oracle alex80.li...@yahoo.com.br Claro Chiappa, talvez fique um pouco extenso, mas sei que ajuda pra elucidar melhor o caso.. A query que enviei, só faltou o _A no nome, mas nao muda nada. Desde já obrigado. Alex CREATE TABLE PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A ( LINE_ID NUMBER NOT NULL ENABLE, CONTRACT_ID NUMBER NOT NULL ENABLE, STS_CODE VARCHAR2(30 BYTE) NOT NULL ENABLE, CLE_ID NUMBER, LSE_ID NUMBER NOT NULL ENABLE, START_DATE DATE, END_DATE DATE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_DATA PARALLEL 4 ; CREATE INDEX PROACTIVE.SDW_CICLA_LINE_ID_IDX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (LINE_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE INDEX PROACTIVE.SDW_CICLA_CONTRACT_ID_IDX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (CONTRACT_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE BITMAP INDEX PROACTIVE.SDW_CICLA_STS_CODE_BIX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (STS_CODE) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE INDEX PROACTIVE.SDW_CICLA_CLE_ID_IDX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (CLE_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE BITMAP INDEX PROACTIVE.SDW_CICLA_LSE_ID_BIX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (LSE_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE INDEX PROACTIVE.SDW_CICLA_START_DATE_IDX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (START_DATE) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE BITMAP INDEX PROACTIVE.SDW_CICLA_END_DATE_BIX ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (END_DATE) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX PARALLEL 4 ; CREATE INDEX PROACTIVE.SDW_CICLA_IDX01 ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (LSE_ID, LINE_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_INDEX ; CREATE INDEX PROACTIVE.SDW_CICLA_IDX02 ON PROACTIVE.SDW_CO_IBIS_CONTRACT_LINE_A (LSE_ID, LINE_ID, CLE_ID) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_DATA ; CREATE TABLE PROACTIVE.SDW_CO_IBIS_SERVICE_COVERAGE_A ( LINE_ID NUMBER NOT NULL ENABLE, LAST_UPDATE_DATE DATE NOT NULL ENABLE, COVERAGE_NAME VARCHAR2(450 BYTE), CONSTRAINT SDW_CISCA_PK PRIMARY KEY (LINE_ID) USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PROACTIVE_DATA ENABLE ) SEGMENT CREATION
Re: [oracle_br] Parametro na consulta
Fala Fábio, Esse parâmetro ativa a funcionalidade Subquery Unesting, explicada brevemente no link abaixo: http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/queries008.htm Para resumir, sem o essa feature, o Oracle trata a subquery como uma simples tabela (digamos, indivisível). Com essa feature ativada, ele considera os objetos da subconsulta como parte da query principal e consegue testar mais planos de execução diferentes. Com isso, ele aumenta as chances de conseguir um plano de execução melhor do que o que você tem hoje. Abraços. Atenciosamente, Gleyson Melo 2010/1/7 Fabio Martinez mtzfa...@gmail.com Pessoal, Preciso de ajuda, alguem sabe qual a finalidade do parametro /*+ opt_param ('_unnest_subquery', 'FALSE') */ na consulta? Obs: a consulta funcionava normalmente no 9i ao migrar para o 10G a consulta ficou muito lenta e me foi sugerido esse parametro... Oracle 10G OPTIMIZER_FEATURES_ENABLE = '10.2.0.4' Obrigado [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] ASM x JFS2
Olá Nelson, Na teoriazona, como o ASM é otimizado para funcionar bem com a arquitetura Oracle, ele deveria ser mais eficiente, mas é sempre bom ter um benchmark em mãos pra confirmar ou desmistificar essas teorias mágicas. Tem o exemplo de experiência desse cara do fórum da Oracle: http://forums.oracle.com/forums/thread.jspa?threadID=958527tstart=60 Foi a única comparação que eu ouvi falar, mas não é totalmente confiável. Atenciosamente, Gleyson Melo 2010/1/5 Nelson Cartaxo ncart...@yahoo.com Pessoal boa tarde, Alguem saberia me dizer qual dos dois acima tem melhor performance? Eu particularmente nunca trabalhei com AIX e não tenho muitas informações sobre esse tipo de FS. Sei que é JFS2 com CIO. Desde já obrigado pela ajuda. Att, Nelson Cartaxo __ 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] Re: Oracle 9i e 10g na mesma máquin a
É legal você setar o PATH diferente pra cada mudança de servidor pra não ficar entrando no diretório pra acessar o executável. Atenciosamente, Gleyson Melo 2009/12/29 Luiz Antonio Camargo luizla...@gmail.com Legal. Muito obrigado, mas acho que o servidor não tem esse poder. Tá com pouco disco, mas já orientei a comprar mais. Me deparei com um problema e quero xompartilhar aqui para quem precisar futuramente. Instalei o binario do 10g e fui rodar o EXP no 9i. Deu pau Para rodar o exp no 9i, vc tem que usar o EXP do 9i, no caso resolvi entrando na pasta $ORACLE_HOME\bin do binario do 9i e rodando dentro dela o EXP Vlw 2009/12/29 José Laurindo jlchia...@yahoo.com.br Nope, isso não é bucha nenhuma : em vc instalando em diretórios (ie, ORACLE_HOMEs) e com identificações (SIDs) diferentes, nenhum problema OBVIAMENTE vc só tem que estar Ciente que cada nova instância Oracle te come uns bons tantos de RAM e CPU além do espaço em disco, o servidor ** TEM QUE TER ** poder de hardware suficiente []s Chiappa --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Luiz Antonio Camargo luizla...@... escreveu Galera. Tô pegando umas buchas legais nas minhas primeiras semanas como DBA!!! hhe Só queria tirar uma dúvida: Oracle 9i e 10g no mesmo servidor, rola legal? Na verdade é assim, a maquina já tem 9i e estou colocando uma base teste 10g para homologação da aplicação nessa versao (10.2.0.3). O cliente ia disponibilizar outa maquina e de ultima hora quis fazer na mesma. Tenho que ter alguma atenção especial além de ORACLE_SID e ORACLE_HOME diferentes? Obrigado Luiz Antonio [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] Comparação de Base de dados
Uma possibilidade é você rodar o RDA nas duas pra olhar as principais configurações e perceber as diferenças usando o diff mesmo (na marra, hehehe). Mas eu estou falando de configurações. O importante é você definir o escopo dessa compatibilização. Você está falando de máquinas de desenvolvimento/homologação/produção? Você quer deixar os dados iguais? Se os bancos estiverem muito diferentes, isso vai ser bem trabalhoso. Abraços. Atenciosamente, Gleyson Melo 2010/1/5 rodrigoojapa rodrigooj...@hotmail.com Bom dia a todos, Estou querendo fazer uma comparação de duas bases de dados iguais, porem elas cada uma esta em um local e preciso saber se tem valores em uma que não tem em outra, para poder fazer a inserção e deixa-las iguais. Tem algum comando que eu possa dar,para que faça essa comparação ??? [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Select / insert /update3 statement hangs over DBlink / sql*net break/reset to dblink
Olá Maurício, Você chegou a fazer um trace do processo? O plano de execução mudou nos dois casos? Faça trace dos dois casos e confirme. Abração, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/9/29 Mauricio Françoso mfranc...@yahoo.com.br Marcos, Mesmo criando o sinonimo no 11g apontando para o 9i ocorre o problema. obrigado. Mauricio do C. Françoso Liberty Seguros Administrador Banco de Dados(DBA ORACLE) --- Em ter, 29/9/09, Marcos Fontana fontana.mar...@gmail.comfontana.marcos%40gmail.com escreveu: De: Marcos Fontana fontana.mar...@gmail.com fontana.marcos%40gmail.com Assunto: Re: [oracle_br] Select / insert /update3 statement hangs over DBlink / sql*net break/reset to dblink Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Data: Terça-feira, 29 de Setembro de 2009, 15:34 Boa tarde! Já tentou criar o sinonimos no banco 11 apontando para os objetos do banco 9? Da um retorno sobre isso. Atenciosamente, Marcos Fontana 2009/9/29 Mauricio Françoso mfranc...@yahoo. com.br Pessoal, Estou executandos os testes para migração do database versão 9.2.0.8 Solaris9 para 11.1.0.7 Solaris9. Tenho algumas procedures que fazem dblink do 11.1.0.7 para o 9.2.0.8 mas na execução do processo, o mesmo fica travado. Executando um select na v$session no campo event me mostra a mensagem de sql*net break/reset to dblink e o processo nunca finaliza. Se eu executar a query com dblink não ocorre o problema, o problema só ocorre quando é executado em um bloco pl/sql. Alguem já passou por essa experiencia? Desde já agradeço. Mauricio do C. Françoso Liberty Seguros Administrador Banco de Dados(DBA ORACLE) _ _ _ _ _ _ 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] __ 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]
Re: [oracle_br] Oracle é iniciado, a memória fica comprometida em 1.8 GB
Olá Carlos Eduardo Gonçalves :) O que você chama de iniciar em 1.6GB? Esse é o seu SGA_MAX_SIZE? Só DB_CACHE_SIZE? Mostre os parâmetros do banco aqui pra gente dar uma olhada. Como está a sua PGA? Você está usando PGA_AGGREGATE_TARGET? Está usando Shared Servers? Alguma OPTION do Oracle como XMLDB? Enterprise Manager? Nada mudou de lá pra cá em termos de configuração de banco, mas mudou em termos de aplicação? Algum job novo foi criado? Alguma trigger de logon? Tente verificar o uso da memória através das views *V$SGA_DYNAMIC_COMPONENTS * E *V$PGASTAT*. Verifique também as estatísticas de uso de memória nas views *V$STATNAME, V$SESSSTAT e V$SYSSTAT*. Abração. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/9/28 cegoncalvesvr cegoncalve...@yahoo.com.br Amigos, bom dia! Estou com um grande problema: De quinta-feira pra cá, o servidor Oracle (windows 2000 server, Oracle 9.2.0.7 Enterprise Edition), ao ser inicializado, ele já compromete no Gerenciador de Tarefas, 1.8 GHZ) Pelos parâmetros do banco d configuração, era para ele iniciar em 1.6 GHZ, como sempre funcionou até a última quarta-feira Já executei várias ferramentas contra virus, pragas, malwere, trojans e e nada é encontrado. Os parâmetros do banco não foram alterados, continuam os mesmos... A única coisa de anormal no servidor que percebi foi que o Gerenciador de Tarefas aparece indisponivel na barra de tarefas. e o REGEDIT não é mais executado... O que pode estar ocorrendo? Urgente Agradeço pela atenção e pela ajuda... [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Problema no parâmetro Global Cache
Oi Érika, Pela cara da mensagem, isso não parece ser um erro. Parece ser um alerta do EM para quando determinada métrica passar de um valor. Não lembro o caminho agora, mas procura os Thresholds do EM, que lá tem essa configuração. Aí é confirmar que os valores aparecendo estão acima dos thresholds definidos e analisar se isso é um problema ou se o threshold está errado. Abraços. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/9/17 erika furlan erikafur...@yahoo.com Olá, alguém pode me ajudar com este parâmetro: Não havendo ainda nenhuma atividade no RAC detectei alguns indícios de problemas com o RAC: * 15/09/2009 13:54:34 - A métrica Global Cache Average CR Get Time está em 6,05556 * 15/09/2009 14:06:40 - A métrica Global Cache Average Current Get Time está em ,14286 O que significa este erro que veio para mim? Érika Queiros Furlan Oracle Certified Master Oracle Certified Profissional Oracle Application Server [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Alterar a partição de registro s numa tabela. Qual a melhor forma?
Fala Lobão. Ao invés de carregar com SQL*Loader, você pode carregar através de uma External Table, fazendo INSERT AS SELECT na tabela particionada, com join com a tabela que tem a informação correta. Se a regra de negócio for mais complexa, você pode usar PL/SQL usando a external table como tabela de origem. Se você der um pouquinho mais de detalhes sobre o valor correto, talvez dê pra ajudar ainda mais. Abraços. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/9/8 Lobão mlo...@gmail.com Obrigado pela resposta kurtnaxl , mas não posso utilizar esta solução...pois não posso truncar partição por partição...pois irei mover os registros para a partição correta com base numa informação q irei buscar...com isto não posso truncar a partição, pois o registro já pode esta na sua partição correta. Abs 2009/9/8 kurtnaxl thiagoeca...@gmail.com thiagoecatia%40gmail.com Tive uma experiência parecida a algum tempo, e obtive melhor performance truncando uma partição por vez, partindo para a próxima após o carregamento da anterior... Não sei se fica bem claro, nem sei se se aplica tão bem ao seu caso como se aplicou ao meu(tinha +50M recs na tabela), mas de repente quem sabe... --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.broracle_br% 40yahoogrupos.com.br, Lobão mlo...@... escreveu E ai pessoal, Alguem poderia me ajudar com essa questão ?? Abs 2009/9/3 Lobão mlo...@... Pessoal, Possuo uma tabela temporária com 127 partições, alimento esta tabela temporária atraves de sqlloader e faço a distribuição dos registros atraves do MOD(valor,128). Entretanto este valor que faço a distribuição não é o correto, pq o arquivo que faço a importação para o banco não possui a informação necessária. O banco de dados da empresa possui um cluster com 8 instâncias espelhadas onde cada instância possui um range de partições em cache oq aumenta a performance... Meu problema é o seguinte, preciso atualizar os registros desta tabela temporária com uma informação que me diz qual a partição correta do registro. Contudo essa tabela possui em média 3 milhões de registros que precisam de atualização. Dai minha dúvida...queria saber a melhor forma de realizar esta atualização dos registros com uma boa performance...peço ajuda aos amigos DBAs e desenvolvedores. Pensei em realizar a atualização de algumas maneiras: 1) Utilizando BULCK COLLECTION para realizar a atualização. 2) Inserir os registros em outra tabela temporária B com a informação correta, truncar a tabela temporaria A e depois realizar a copia da tabela B para A. E ai pessoal...sugestões ? Valeu! []'s [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Views WRH$
Faz tempo mas... Cara, você precisa dar uma olhada na retenção desses dados. Como ele não retém os dados antigos, deveria chegar uma hora em que o volume de dados não iria crescer muito mais. Se não me engano, o padrão é 7 dias. Talvez alguém tenha aumentado. Abração. Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/8/31 Marcelo Medrado marcelo.medr...@polo-it.com.br Opa Chiappa, Falha minha. É gerado na SYSAUX mesmo. Obrigado pelas dicas. Abraços! Marcelo Medrado Polo-IT 2009/8/31 jlchiappa jlchia...@yahoo.com.br jlchiappa%40yahoo.com.br Pra mim, o ** mais estranho ** é que vc diz que estão na tablespace SYSTEM : normalmente o AWR é criado na tablespace SYSAUX... Bom, iirc vc não pode sair truncando essas tabelas de acordo com o Suporte : elas contém snapshos de AWRs, vc deve usar a package DBMS_WORKLOAD_REPOSITORY, que tem as rotinas de DROP (de snapshots, de baselines, etc) apropriadas - tente lá, qquer coisa se não conseguir diga EXATAMENTE quais são os objetos que ainda estão grandes E é claro, se vc não quer usar o AWR (ou não pode porque não tem Licença), deve usar a nota metalink Package for disabling AWR without a Diagnostic Pack license in Oracle, Doc ID: 436386.1 []s Chiappa -- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.broracle_br% 40yahoogrupos.com.br, Marcelo Medrado marcelo.medr...@... escreveu Prezados, Estou enfrentando um problema numa base de dados 10g onde não possuo acesso ao DBCONSOLE/GRID CONTROL. Existem tabelas WRH$ na tablespace SYSTEM que estão crescendo de forma acelerada e não sei: 1) Se posso remover diretamente (delete ou truncate) e em que ordem isso pode ser feito; 2) Se elas podem ser eliminadas/limpas através de algum DBMS_ da vida; 3) Como fazer para que elas parem de crescer; Sei que elas pertencem ao AWR e já vi algumas documentações (não-oficiais) mostrando que podemos truncá-las da mesma forma que fazemos com a AUD$. Alguém já teve esta experiência ou tem algo a comentar? Abraços, Marcelo Medrado Polo-IT [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Segment SYS_LOB
Você pode seguir o exemplo abaixo, supondo um Oracle 10g http://halisway.blogspot.com/2007/06/reclaiming-lob-space-in-oracle.html *alter table lob_test modify lob (data) (shrink space);* Abraços Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional 2009/8/31 kolombesky marco marco_kolombe...@yahoo.com.br Boa tarde !!! Gostaria de saber se há e como reduzir os tamanhos de segmentos SYS_LOB, sendo que já reduzi os dados da tabela que faz referencia a este segmento, hoje a mesma está utilizando quase 120GB. Obrigado. Att. Marco Aurelio Kolombesky __ 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] Duvida RAID 5 ou RAID 1 ????
Oi Marco, Vê se você consegue alguns benchmarks da performance desse Storage + Oracle. Com isso, você passa a ter um pouquinho mais de informação pra comparar os resultados e mostrar mais informação pra sua gerência. No meu antigo ambiente de trabalho, foi utilizado RAID 5 no ambiente de Produção por uma questão de custo e as pessoas estão felizes (Estavam quando eu saí. Hoje eu não sei, mas acho que sim :D). Nunca tive problema. Como o José Teixeira disse, há outros fatores que afetam o desempenho do Storage como a quantidade de discos no RAID. Dá uma lida no funcionamento dele, compara com o que você tem hoje e monta uma apresentação. Se o teu chefe disser que quer a melhor performance e não importa o custo é oooutra história. 2009/5/29 Marco Souza msbso...@yahoo.com.br Valew, Minha preocupação é exatamente esta, se tornar um problema no futuro, e eu ter que arcar com as consequencias. --- Em qui, 28/5/09, Ricardo Portilho Proni porti...@profissionaloracle.com.br portilho%40profissionaloracle.com.br escreveu: De: Ricardo Portilho Proni porti...@profissionaloracle.com.brportilho%40profissionaloracle.com.br Assunto: Re: [oracle_br] Duvida RAID 5 ou RAID 1 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Data: Quinta-feira, 28 de Maio de 2009, 18:30 Oi Marco. www.baarf.com Os maiores especilistas Oracle do planeta condenam o RAID 5, não importa a implementação ou hardware. Eu já vi RAID 5 em storages muito modernos, tornararem-se o gargalo do Banco rapidamente, assim que ele cresceu. HD é muito barato para dispensar-se um RAID 10. Ele será sempre mais lento que RAID 10 ou 1. É matemático. Os SysAdmins (e vendedores de storage) sempre dizem isso. Mas o problema de performance do Banco não será deles, será seu. Abraço ! - Ricardo Portilho Proni http://portilho. profissionalorac le.com.br Em Qui, 2009-05-28 às 13:27 -0700, Marco Souza escreveu: Pessoal, Chegou um servidor BLADE no local onde trabalho, com um STORAGE de alta performance. O administrador de Sistema teima em querer usar RAID 5. Vale resaltar que pretendo ter um banco de dados STAND BY (em uma das laminas). O Adm do Sistema falou que esse Storage com RAID 5 é rápido, tanto para leitura como para gravação.(Sempre ouvir falar que a performance de gravação é muito fraca) Seria muito conservadorismo de minha parte, usar o RAID 10 no banco de producao, tendo um servidor STAND BY em outra lâmina 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] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida RAID 5 ou RAID 1 ????
Marco, Cuidado com o super-confiável. Verifica direitinho quantos discos vocês podem perder no máximo sem ter um problema. Por exemplo, no Storage HP EVA, você tem uma segurança adicional além do RAID, o que faz com que você consiga se recuperar, dependendo do que você perder. Não pensa na sua necessidade a curto prazo. Não sei onde você trabalha, mas a tendência de um ambiente novo e com boa performance é que as pessoas queiram armazenar de tudo lá. Aplicações novas podem adicionar um volume de dados muito superior ao que você tinha estimado. Esse tipo de investimento é pra vários anos e no final da vida desse Storage, você pode ficar no gargalo. Cuidado com isso. Será que distribuir esses datafiles vai valer mesmo a pena? Dependendo da sua arquitetura, pode até ser, mas será que o ganho que você vai ter vai compensar a perda de flexibilidade que você pode ter? O redo é o candidato ideal pra ficar em discos mais rápidos e isolado do resto do mundo. Pode te dar um resultado melhor. Você já tem um banco de testes nesse ambiente novo? Dá pra simular os batches? Verifica os tempos de resposta do disco. Vê se o que você tem hoje te atende. Não adianta a sua performance ser 10X se X te atende com folga e isso te deixa limitado. Outra coisa, como você faz backup? Você pode usar o disco pra diminuir o seu tempo de backup, copiando pra fita o conteúdo do disco, se a sua janela estiver no gargalo. Em resumo, verifica esses fatores: - Quão caro vai ser se eu tiver que mudar de estratégia depois? Quais são as minhas janelas pra manutenção? - O tempo de resposta me atende do jeito que está ou eu preciso melhorar? Melhorar quanto? - Quantos discos eu posso perder ao mesmo tempo? Existe um grupo de discos onde o risco é maior? - Como está a minha estratégia de backup hoje? Posso usar o Storage pra otimizá-la? Se possível, estuda um pouquinho o funcionamento desse storage. Pode ser que ele tenha outros fatores específicos que estejam faltando nessa discussão. Abraços. 2009/6/1 Marco Souza msbso...@yahoo.com.br Gleyson, O storage tem 8 discos de 300gb de alto desempenho (fiber channel). Pelo que o Adm de Infra falou, só tem um grupo de RAID 5 com os 8 discos, mais 1 de paridade. Meu receio e com a segurança dos dados, já que só possuo 1 unico conjunto de RAID 5. A lamina do Blade tem 2 disco de 300 gb. O Adm de Infra, disse pra eu nao me preocupar com desempenho e segurança, porque este Storage não tem problema é super confiável. Levando-se em conta que o meu banco é relativamente pequeno (100 gb de dados) e tem média de 14 transações por segundo. Estou achando os disco que compoe o RAID muito grande para a minha necessidade. E mesmo com todas as garantias por parte do Adm Infra, acho importante distribuir os arquivos de dados, indices, rollback, etc (terá um custo bastante elevado, dado o tamanho dos discos). --- Em seg, 1/6/09, Gleyson Melo gleysonm...@gmail.comgleysonmelo%40gmail.com escreveu: De: Gleyson Melo gleysonm...@gmail.com gleysonmelo%40gmail.com Assunto: Re: [oracle_br] Duvida RAID 5 ou RAID 1 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Data: Segunda-feira, 1 de Junho de 2009, 11:53 Oi Marco, Vê se você consegue alguns benchmarks da performance desse Storage + Oracle. Com isso, você passa a ter um pouquinho mais de informação pra comparar os resultados e mostrar mais informação pra sua gerência. No meu antigo ambiente de trabalho, foi utilizado RAID 5 no ambiente de Produção por uma questão de custo e as pessoas estão felizes (Estavam quando eu saí. Hoje eu não sei, mas acho que sim :D). Nunca tive problema. Como o José Teixeira disse, há outros fatores que afetam o desempenho do Storage como a quantidade de discos no RAID. Dá uma lida no funcionamento dele, compara com o que você tem hoje e monta uma apresentação. Se o teu chefe disser que quer a melhor performance e não importa o custo é oooutra história. 2009/5/29 Marco Souza msbso...@yahoo. com.br Valew, Minha preocupação é exatamente esta, se tornar um problema no futuro, e eu ter que arcar com as consequencias. --- Em qui, 28/5/09, Ricardo Portilho Proni porti...@profission aloracle. com.br portilho%40profiss ionaloracle. com.br escreveu: De: Ricardo Portilho Proni porti...@profission aloracle. com.brportilho%40profiss ionaloracle. com.br Assunto: Re: [oracle_br] Duvida RAID 5 ou RAID 1 Para: oracle...@yahoogrup os.com.br oracle_br%40yahoog rupos.com. br Data: Quinta-feira, 28 de Maio de 2009, 18:30 Oi Marco. www.baarf.com Os maiores especilistas Oracle do planeta condenam o RAID 5, não importa a implementação ou hardware. Eu já vi RAID 5 em storages muito modernos, tornararem-se o gargalo do Banco rapidamente, assim que ele cresceu. HD é muito barato para dispensar-se um RAID 10. Ele será sempre mais lento que RAID
Re: [oracle_br] Plano diferente quando usa bind
Fala Julio, Se você colocar os valores como constantes nas consultas, o Oracle vai fazer o uso de histogramas para verificar a distribuição das colunas e escolher o melhor plano de execução que ele puder com base nisso. Creio que seja esse o problema. Quantas vezes você chama esse SELECT? As vantagens de você usar binds são reaproveitar planos de execução e diminuir a concorrência na Shared Pool. Se você não ficar muito incomodado com um uso imperfeito da Shared Pool, você pode substituir colocar esse SELECT dentro de um execute immediate e concatenar os valores que seriam filtrados através de binds. Assim você força o Oracle a escolher um novo plano de execução adequado para esse caso específico. Se você postar a consulta, os planos (com e sem bind), índices e histogramas da tabela, poderemos te ajudar mais. Abraços. 2009/5/25 Julio Bittencourt juliobit_...@yahoo.com.br Temos um procedimento aqui que está demorando muito para executar. Após gerar um trace com set events '10046 e analisá-lo, vi que há três selects que consomem a maior parte do tempo. Peguei cada SELECT e os respectivos valores das variáveis bind e executei individualmente. Aí fica muito mais rápido, tipo se no procedimento cada um leva um minuto, individualmente leva menos de 10, isso quando os blocos ainda não estão no cache, se rodar de novo leva 1,5 segundos. Verifiquei que os planos de execução dos SQLs quando da execução pelo procedimento são diferentes de quando os executo individualmente com valores fixos no lugar das variáveis bind. Então fiz um teste: Criei um procedimento de teste a partir do original, substituindo as variáveis pelos valores fixos e, como esperava, o tempo da execução caiu drasticamente. Isso indica que o Oracle está usando planos inadequados durante a execução do procedimento, mas não sei como fazer com que passe a utilizar planos melhores. Vi um artigo do Chiappa que fala sobre Bind Variable Peeking e tentei usar ALTER SESSION SET _optim_peek_user_binds=FALSE; , mas não surtiu efeito. Em resumo: Porque o Oracle não usa o mesmo plano de execução quando o select tem bind e quando tem valores fixos? O que posso fazer para forçá-lo a usar o mesmo plano? Dados do Servidor: Oracle 9.2.0.7 64 bits + Sun Solaris 9 Detalhe: COMPATIBLE = 8.1.6 (não me perguntem porque, pois quando eu cheguei já estava assim e não posso mudar por enquanto) Agradeço desde já qualquer ajuda. Att. Julio 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] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Atribuir Role no Logon
Fala Elis, Utilize a feature Secure Application Roles: http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/authoriz.htm#i1008520 2009/5/19 Elis Azevedo Nery elisn...@yahoo.com Olá! Eu gostaria de atribuir um role ao usuário no logon do banco de dados. Fiz o trigger a seguir, apesar dele entrar e fazer o set, o usuário não fica com o role. Alguma sugestão? CREATE OR REPLACE TRIGGER SYS.BLOCK_TOOLS_FROM_PROD AFTER LOGON ON DATABASE DECLARE BEGIN SELECT program, username, osuser INTO v_prog, owner, v_osuser FROM sys.v_$session WHERE audsid = USERENV('SESSIONID') AND audsid != 0 -- Don't Check SYS Connections AND rownum = 1; -- Parallel processes will have the same AUDSID's IF UPPER(v_prog) LIKE '%DIS51ADM%' THEN DBMS_SESSION.SET_ROLE. ('SUPER ROLE IDENTIFIED BY password''); END IF; END; Obrigada Elis Nery Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida Crystal Reports
Beleza. É mais ou menos esse o problema da galera que eu te falei. Você tentou fazer daquela forma? 2009/5/18 juliano segantine jusegant...@yahoo.com.br Bom dia Gleyson, Ele não tem mensagem de erro, ele mostra o relatorio...o unico problema é que pede a senha. Segue abaixo o print da tela!!! Muito obrigado pela ajuda, abraco!!! --- Em *sáb, 16/5/09, Gleyson Melo gleysonm...@gmail.com* escreveu: De: Gleyson Melo gleysonm...@gmail.com Assunto: Re: [oracle_br] Duvida Crystal Reports Para: oracle_br@yahoogrupos.com.br Data: Sábado, 16 de Maio de 2009, 15:06 Fala cara, Aparentemente um bocado de gente está passando pelo mesmo problema. Infelizmente você não disse COMO ele pede a senha, nem mandou erros, print screens, ... Enfim, provavelmente o problema é no Crystal Reports, que faz o próprio logon no banco de dados com as suas próprias propriedades de conexão, e você não está passando essas informações pra ele. http://aspalliance. com/490_Troubles hooting_Database _Login_Errors_ using_Crystal_ Reports_with_ NET.allhttp://aspalliance.com/490_Troubleshooting_Database_Login_Errors_using_Crystal_Reports_with_NET.all http://66.129. 67.4/p/1219420/ 2365961.aspxhttp://66.129.67.4/p/1219420/2365961.aspx http://forums. devshed.com/ net-development- 87/database- login-prompt- issue-with- crystal-reports- 215863.htmlhttp://forums.devshed.com/net-development-87/database-login-prompt-issue-with-crystal-reports-215863.html 2009/5/15 jusegantine jusegantine@ yahoo.com. brhttp://br.mc538.mail.yahoo.com/mc/compose?to=jusegantine%40yahoo.com.br Boa tarde Senhores!!! Primeiramente sei que este é um grupo sobre Oracle e que não é o lugar mais indicado para postar este tipo de duvida, mas quando bate o desespero nós temos que atirar para todos os lados!!! Seguinte, estou com um sisteminha em VB Net e estou fazendo os relatorios com Crystal, porem quando executo o relatório, toda vez ele me pede a senha do banco que no caso é um Oracle 10G. A string de conexão está correta, tenho o Client instalado e não sei mais o que fazer. segue abaixo o codigo que usei no form : Imports System.Data. OleDb Public Class FRMRELATORIOMODELOE QUIPAMENTO Private Sub FRMRELATORIOMODELOE QUIPAMENTO_ Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GerarRelatorio( ) End Sub Private Sub GerarRelatorio( ) 'definir as variáveis de conexão Dim OleDbConn As OleDbConnection 'Dim OleDbDaProd As OleDbDataAdapter Dim OleDbDaCate As OleDbDataAdapter Dim dsPc As New DataSet 'definir a string de conexão e as instruções sql para cada tabela Dim strConn As String = provider=ORAOLEDB. Oracle.1; Data Source=DBA;Persist Security Info=True;User ID=base3;Password= base3;Unicode= True Dim sqlCategorias As String = Select * From VW_MODELO_EQUIPAMEN TO 'Dim sqlProdutos As String = Select * From Products Try 'Criar os objetos dataadatper OleDbConn = New OleDbConnection( strConn) OleDbDaCate = New OleDbDataAdapter( sqlCategorias, OleDbConn) 'OleDbDaProd = New OleDbDataAdapter( sqlProdutos, OleDbConn) 'Preenche as tabelas do dataset usando o dataadapter OleDbDaCate. Fill(dsPc, VW_MODELO_EQUIPAME NTO) 'OleDbDaProd. Fill(dsPc, Products) 'Preencher o relatório e exibí-lo no visualizador Dim rptPc As New RPTMODELOEQUIPAMENT O rptPc.SetDataSource (dsPc) 'Me.RPTMODELOEQUIPA MENTO.ReportSour ce = rptPc Catch ex As Exception MessageBox.Show( ex.ToString) End Try End Sub End Class É um código simples onde chamo uma view. Tenho que criar mais alguma coisa além disso? Abraços e muito obrigado!!! -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] -- Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/- Celebridadeshttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/- Músicahttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/- Esporteshttp://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Duvida Crystal Reports
Fala cara, Aparentemente um bocado de gente está passando pelo mesmo problema. Infelizmente você não disse COMO ele pede a senha, nem mandou erros, print screens, ... Enfim, provavelmente o problema é no Crystal Reports, que faz o próprio logon no banco de dados com as suas próprias propriedades de conexão, e você não está passando essas informações pra ele. http://aspalliance.com/490_Troubleshooting_Database_Login_Errors_using_Crystal_Reports_with_NET.all http://66.129.67.4/p/1219420/2365961.aspx http://forums.devshed.com/net-development-87/database-login-prompt-issue-with-crystal-reports-215863.html 2009/5/15 jusegantine jusegant...@yahoo.com.br Boa tarde Senhores!!! Primeiramente sei que este é um grupo sobre Oracle e que não é o lugar mais indicado para postar este tipo de duvida, mas quando bate o desespero nós temos que atirar para todos os lados!!! Seguinte, estou com um sisteminha em VB Net e estou fazendo os relatorios com Crystal, porem quando executo o relatório, toda vez ele me pede a senha do banco que no caso é um Oracle 10G. A string de conexão está correta, tenho o Client instalado e não sei mais o que fazer. segue abaixo o codigo que usei no form : Imports System.Data.OleDb Public Class FRMRELATORIOMODELOEQUIPAMENTO Private Sub FRMRELATORIOMODELOEQUIPAMENTO_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GerarRelatorio() End Sub Private Sub GerarRelatorio() 'definir as variáveis de conexão Dim OleDbConn As OleDbConnection 'Dim OleDbDaProd As OleDbDataAdapter Dim OleDbDaCate As OleDbDataAdapter Dim dsPc As New DataSet 'definir a string de conexão e as instruções sql para cada tabela Dim strConn As String = provider=ORAOLEDB.Oracle.1;Data Source=DBA;Persist Security Info=True;User ID=base3;Password=base3;Unicode=True Dim sqlCategorias As String = Select * From VW_MODELO_EQUIPAMENTO 'Dim sqlProdutos As String = Select * From Products Try 'Criar os objetos dataadatper OleDbConn = New OleDbConnection(strConn) OleDbDaCate = New OleDbDataAdapter(sqlCategorias, OleDbConn) 'OleDbDaProd = New OleDbDataAdapter(sqlProdutos, OleDbConn) 'Preenche as tabelas do dataset usando o dataadapter OleDbDaCate.Fill(dsPc, VW_MODELO_EQUIPAMENTO) 'OleDbDaProd.Fill(dsPc, Products) 'Preencher o relatório e exibí-lo no visualizador Dim rptPc As New RPTMODELOEQUIPAMENTO rptPc.SetDataSource(dsPc) 'Me.RPTMODELOEQUIPAMENTO.ReportSource = rptPc Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub End Class É um código simples onde chamo uma view. Tenho que criar mais alguma coisa além disso? Abraços e muito obrigado!!! -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Erro na hora de excluir um usuario
Oi Mária, Nunca passei por isso e, considerando que não tem nenhuma sessão desse usuário nem bug, verique se existe alguma procedure executando nesse schema. Se não tiver, dê uma procurada por bugs no metalink. Abraços. 2009/5/16 Mária Cristina Silva mariancrist...@gmail.com Bom dia! Pessoal estou tentando excluir(drop) um usuario, porém dá o erro abaixo: , Acontece que já verifiquei se existem mesmo alguém conectado e não achei.. bloqueie o usuario e alterei a senha, mas ainda sim continuo sem consegui dropar, já excluir todos os objetos dele, mas não consigo dopa-lo.. alguém já passou por tal situação e poderia me dá um help por favor.. Error dropping IXXX: ORA-01940: não é possível eliminar um usuário conectado no momento Desde já agradeço. -- Abraços, Mária Cristina Cel: 031-8883-5543 E-mail: mariancrist...@gmail.com mariancristina%40gmail.com MSN: mcristinasil...@hotmail.com mcristinasilva3%40hotmail.com -- O começo é a parte mais importante do trabalho. - Platão [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Condição dentro de variável
Olá Rogério, Um exemplo de função de validação poderia ser essa: function valida_expr(expr in varchar2) return boolean is begin execute immediate 'SELECT COUNT(0) FROM DUAL WHERE ' || EXPR INTO CONT; return cont = 1; exception when others then return false; end; Olha um exemplo de uso abaixo: SQL declare 2 3 cont number; 4 5 function valida_expr(expr in varchar2) return boolean is 6 begin 7 8 execute immediate 'SELECT COUNT(0) FROM DUAL WHERE ' || EXPR INTO CONT; 9 10 return cont = 1; 11 exception when others then 12 return false; 13 end; 14 15 begin 16 17 -- CASO SIMPLES 18 IF VALIDA_EXPR('1=1') THEN 19 DBMS_OUTPUT.PUT_LINE('1 REALMENTE E IGUAL A 1 (OMG!)'); 20 ELSE 21 DBMS_OUTPUT.PUT_LINE('EU SABIA QUE ERA DIFERENTE!!'); 22 END IF; 23 24 -- CASO ERRADO 25 IF VALIDA_EXPR('1=x') THEN 26 DBMS_OUTPUT.PUT_LINE('1=x'); 27 ELSE 28 DBMS_OUTPUT.PUT_LINE('Nao passou'); 29 END IF; 30 31 -- CASO COMPLEXO 32 IF VALIDA_EXPR('(5 = SQRT(25) AND 1 0) OR (1 * 10 = 1000 / 100)') THEN 33 DBMS_OUTPUT.PUT_LINE('Deu tudo certo!'); 34 ELSE 35 DBMS_OUTPUT.PUT_LINE('Que merda foi essa?'); 36 END IF; 37 38 end; 39 / 1 REALMENTE E IGUAL A 1 (OMG!) Nao passou Deu tudo certo! Procedimento PL/SQL concluÝdo com sucesso. SQL O pessoal não tá preocupado com performance em vão. Você mencionou pouca informação sobre a sua aplicação. Como ela vai se comportar? Milhares de usuários executando milhões de validações por dia? Uma vez por semana? A validação vai mudar constantemente ou é uma coisa que vai permanecer a mesma por milhares de anos? Se você não tomar cuidado, pode impactar pesadamente a Shared Pool, talvez a CPU da sua máquina e a vida de usuários inocentes que não têm nada a ver com a história. Abração. 2009/5/12 RogérioLo Bello rogerio...@gmail.com Bom dia, Estou com um problema, sei que em algumas linguagens tem como fazer essa conversão, mas não sei quanto a PL/SQL. Quero fazer o seguinte, colocar uma condição dentro da variável e testar a variável: V_CAST := '1=1'; IF V_CAST THEN V_RETORNO := '1 é igual a 1'; END IF; Existe alguma forma de fazer isso? Rogério -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Argumentos
Fala Filipe! Você está usando valores DEFAULT para os parâmetros? Se estiver usando, é só tirar que ele não deixa nem você compilar a chamada da procedure. Se você precisar usar valores DEFAULT, faça um teste do tipo: IF P_CAMPO1 IS NULL THEN RAISE...('PARAMETRO ERRADO. FAZ A PARADA DIREITO!!'); END IF. Mais ou menos por aí :) 2009/4/21 fsilva6 fsil...@yahoo.com.br Oi Gleyson, meu nome é filipe(rsrsrsr)!!! Brother, não consegui visualizar a solução que você propos. Ao chamar uma procedure, executo o comando abaixo. exec pr_xpto; no meu caso, a execução da procedure pr_xpto não ocorreia sendo finalizada com erro. como poderei tratar a excetion que ocorre neste processo e informar que para executar a procedure é necessário passar os determinados parametros? --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Gleyson Melo gleysonm...@... escreveu Fala F (Fábio? Flávio? Francisco?) 1. Valida se o usuário passou valores nulos; 2. Coloca um valor padrão pro parâmetro. Abração. 2009/4/16 fsilva6 fsil...@... Fala galera, pintou uma pequena dúvida. Desenvolvi uma procedure que recebe alguns parametros(Ex.: pr_carga_xpto(P_campo1, P_campo2)).Caso o usuário execute essa procedure e não passe parametro algum, gostaria de tratar essa anomalia informando que para executar a procedure é necessário passar os parametros. É possivel tratar essa exception? -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Dúvida sobre Order by
Fala Eriovaldo! Cara, aquele ORDER BY foi apenas pra gerar o valor final do RANK. Pra gerar a saída que tu queres, tens que colocar o ORDER BY no final da consulta também. 2009/4/22 Eriovaldo Andrietta ecandrie...@gmail.com Olá pessoal, Veja se alguém pode me ajudar: Quando faço esta query ordenando a coluna text de forma desc tenho 0447 no final: select 100 as num1, 200 as num2, '0691' as text from dual union all select 100 as num1, 200 as num2, '0447' as text from dual order by 1 desc, 2 desc, 3 desc 1 100 200 0691 2 100 200 0447 Quando faço esta query ordenando a coluna text de forma asc tenho 0447 no começo: select 100 as num1, 200 as num2, '0691' as text from dual union all select 100 as num1, 200 as num2, '0447' as text from dual order by 1 desc, 2 desc, 3 asc 1 100 200 0447 2 100 200 0691 até ai tudo bem. é isso mesmo que eu quero, O desc desc asc funciona, porém: quando uso esse mesmo recurso em: DENSE_RANK() OVER (PARTITION BY d.si_period_id ORDER BY d.attribute_value desc , e.attribute_value desc , f.code asc) AS DENSE_RANK o 0447 sai sempre no final. Eu preciso do 0447 na primeira linha e a instrução não faz isso. Sai assim: 1 18 1 16262927843,11529920 1303006,45802409 0691 1 2 15 1 16262927843,11529920 1303006,45802409 0447 2 E preciso do resultado assim, o menor código antes: 1 18 1 16262927843,11529920 1303006,45802409 0447 1 2 15 1 16262927843,11529920 1303006,45802409 0691 2 O que tem de errado nisso ? Grato Eriovaldo [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] XE Cliente para Windows Vista
Inclusive eu tenho o próprio XE instalado na minha máquina Vista. 2009/4/18 Ricardo Portilho Proni rportilhopr...@yahoo.com.br Oi. Você pode instalar o client normal (10g) do Oracle para Windows Vista, não precisa ser o do XE. --- Em sex, 17/4/09, André Gustavo Schaeffer - Berbau Balas Finas an...@berbau.com.br andre%40berbau.com.br escreveu: De: André Gustavo Schaeffer - Berbau Balas Finas an...@berbau.com.brandre%40berbau.com.br Assunto: [oracle_br] XE Cliente para Windows Vista Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Data: Sexta-feira, 17 de Abril de 2009, 20:09 Senhores. Ja existe disponivel o Oracle XE Client para Windows Vista ou posso instalar o XE Client para Windows XP no Vista e funciona sem problemas? Alguem ja precisou disso ? Obrigado por qualquer ajuda. André Gustavo Schaeffer Berbau Balas Finas Email: an...@berbau.com.br andre%40berbau.com.br MSN: agsm...@hotmail.com agsmisc%40hotmail.com Fone: (54) 3321 3677 Ramal 24 http://www.berbau.com.br [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] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Argumentos
Fala F (Fábio? Flávio? Francisco?) 1. Valida se o usuário passou valores nulos; 2. Coloca um valor padrão pro parâmetro. Abração. 2009/4/16 fsilva6 fsil...@yahoo.com.br Fala galera, pintou uma pequena dúvida. Desenvolvi uma procedure que recebe alguns parametros(Ex.: pr_carga_xpto(P_campo1, P_campo2)).Caso o usuário execute essa procedure e não passe parametro algum, gostaria de tratar essa anomalia informando que para executar a procedure é necessário passar os parametros. É possivel tratar essa exception? -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] [Web] - Executar uma RFC por procedure Oracle
Fala Frank! A sua Macro é independente do Excel? Ela simplesmente é código VBA? O seu Banco é em Windows? Qual a versão do seu banco? Se a função for independente e o banco estiver em Windows, você pode aproveitar boa parte da função VB e criar uma função DLL com esse código usando Visual Basic. Aí você chama esse código através de uma External Procedure. Se o seu banco for em Unix, melhor você arrumar uma outra versão do código compilável nesse Unix. Se o código for simples... reescreve PL/SQL na veia :) Verifica se não existe essa função já escrita em PL/SQL ou C. 2009/4/15 Frank Viana - frkvi...@hotmail.com modera...@oraclebr.com.br pEsta mensagem foi enviada via Web por Frank Viana/ppEndereço de resposta: a href='mailto:frkvi...@hotmail.com frkviana%40hotmail.com' frkvi...@hotmail.com frkviana%40hotmail.com/a/pBoa tarde.br / br / Através de uma procedure Oracle preciso executar uma função ABAB (RFC) de um banco SQL. Possuo uma macro no Excel que executa esta mesma função.br / br / [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] SQLPLUS
Que tal criar uma pequena aplicação Java pra conectar usando o Thin Client? (Seria só mais um arquivo no diretório). Aí você faz o parsing dos comandos em um arquivo de entrada e sai mandando bala. Inclusive dessa forma, você consegue fazer algo mais flexível do que algo feito com um script do SQL*Plus. Abraços 2009/4/9 Carlos Pinto carlos.pin...@yahoo.com.br Ola amigos, Necessitava de instalar em vários computadores o client de SQLPLUS, mas não cria estar a instalar tudo o “pacote” client. Como posso fazer isso? Ou existe alguma ferramenta gratuita para isso? Obrigado Carlos Pinto [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: CAST no Oracle 9i e 10g
Isso. Qual a aplicação do cara? O cara tem que tratar isso na aplicação. Ponto final. E isso não é nada difícil. Tem várias maneiras de se fazer isso. Variáveis de ambiente, alter session, parâmetros da própria aplicação... Abração. 2009/4/4 jlchiappa jlchia...@yahoo.com.br Colega, seguinte : no banco Oracle *** não existe *** o conceito de 'formato interno' de um número ou de uma data, o banco SEMPRE passa pro cliente o que foi pedido e é O CLIENTE que tem que formatar isso, ok ? Formatação é PROBLEMA DO CLIENTE, ok ?? O banco faz a tarefa dele de entregar o dado, o cliente é que se vira pra formatar... Somente ** SE ** e apenas ** SE ** o cliente não especificou rigorosamente NADA em termos de format são usados os defaults NLS (tal como NLS_NUMERIC_xx e NLS_DATE_FORMAT), certo ? Um exemplo no 9i com CAST como vc mostrou : Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options JServer Release 9.2.0.8.0 - Production SQL select cast(120 as number(10,3)) from dual; CAST(120ASNUMBER(10,3)) --- 120 == no meu caso o meu cliente estava formatando sem mostrar zeros decimais, vamos ver PRIMEIRO que a informação ESTÀ vindo sim em 3 casas : SQL select cast(120.001 as number(10,3)) from dual; CAST(120.001ASNUMBER(10,3)) --- 120,001 == taí, quando havia alguma significativa eu a RECEBI, não estou perdendo NADICA de NADA , ok : E em segundo lugar, agora vou formatar NO MEU CLIENTE o número : SQL set NUMFORMAT 9G999G999D009 == veja só : SQL select cast(120.001 as number(10,3)) from dual; CAST(120.001ASNUMBER(10,3)) --- 120,001 SQL select cast(120.000 as number(10,3)) from dual; CAST(120.000ASNUMBER(10,3)) --- 120,000 yes ??? Isto nos mostra que formatação *** NÂO TEM A VER *** com o servidor, é no programa CLIENTE, usando os recursos DO CLIENTE, seja ele qual for, que vc formata, yes ?? Então se vc quer passar um datatype NUMBER pro cliente (que já contém inteiros e decimais) então passe, é ELE que tem que se virar pra formatar, sim ? []s Chiappa --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Thiago Delfim tdel...@... escreveu Gleyson, Obrigado pela resposta. Eu sei que não há diferença nesses valores, porém o usuário final (na verdade um sistema externo que consulta uma view no nosso banco de dados) queria ver os dados com as 3 casas decimais. Conseguimos fazer no isso no Oracle 10g mas não teve o mesmo efeito no 9i. O client que eu usei nos dois casos é o mesmo, apenas apontando para um outro banco diferente. Você sabe se alguma configuração no servidor pode afetar essa exibição? Ou se há mesmo alguma diferença de tratamento entre o 9i e o 10g? De qualquer forma, já convenci o usuário de que o valor está certo, e se ele estiver esperando um número real, tanto faz o jeito como o Oracle retorna eles (com ou sem casas decimais). Só teria problema se tivessem casas decimais e ele usasse uma variável inteira ou se ele trata isso como string, o que acho não ser o caso. -- Thiago Delfim Oracle 9i Database Certified Professional Oracle 10g Database Certified Professional tdel...@... (MSN) Campinas/SP (19) 8204-2681 / 9111-1439 2009/4/4 Gleyson Melo gleysonm...@... Fala Thiago, tudo em paz? Vamos começar com duas perguntas: 120 é igual a 120,000? 120 é igual a 0x78 (hexadecimal)? Matematicamente sim. Então porque parecem diferentes? A diferença é a representação do número. A representação do número é uma string. O que está diferente não é o número, é o formato, como a gente pode ver pelo exemplo: SQL select cast(120 as number(10,3)) as numero from dual; NUMERO -- 120 SQL col numero for 999D999 SQL select cast(120 as number(10,3)) as numero from dual; NUMERO 120,000 SQL Isso é configuração a nível de cliente. Espero ter ajudado. Um abraço. 2009/3/31 Thiago Delfim tdel...@... tdelfim%40gmail.com Pessoal, Algúem já teve algum problema desse tipo: select cast(120 as number(10,3)) from dual; No Oracle 9i retorna: 120 No oracle 10g retorna: 120,000 É isso mesmo? Existem diferenças no CAST entre as duas versões do Oracle? Estou usando CAST para que uma VIEW retorne os números no formato NUMBER(10,3). Fiz com CAST no Oracle 10 e funcionou como eu queria, mas no Oracle 9 não. Como eu posso ter o mesmo efeito no Oracle 9 já que o CAST tem comportamento diferente? -- Thiago Delfim Oracle SQL Server Database Administrator Oracle 9i Database Certified Professional tdel...@... tdelfim%40gmail.com tdelfim%40gmail.com (MSN) Campinas/SP (19) 8204-2681 / 9111-1439 Sent from Campinas, São Paulo, Brazil
Re: [oracle_br] PL/SQL, template e HTML
Olá Elias, tudo bom? O que você quer é gerar HTML a partir de PL/SQL? Considerando isso... Opção 1: Se você tiver o Oracle Application Server, existe uma feature chamada PL/SQL Server Pages que talvez possa te ajudar. Opção 2: Você pode gerar XML brincando a partir de consultas Oracle, direto no SQL. Depois de gerar o XML, você usa XSLT pra transformar esses dados no que você quiser. Não precisa se limitar a HTML e pode mudar os templates sem dor de cabeça. Opção 3: Usar um gerador de relatórios. Dependendo da arquitetura da sua aplicação, você pode usar uma ferramenta do tipo Crystal Reports para gerar relatórios em vários formatos. Opção 4: Use uma aplicação web para obter os dados gerados pela sua aplicação e gerar o HTML simplesmente fazendo Bind dos dados. Isso deve facilitar um bocado a sua vida. Claro que isso também depende da arquitetura da aplicação. O pessoal do fórum provavelmente sabe outras maneiras mais fáceis e melhores de fazer isso. Se você der mais detalhes do que você pretende fazer, o povo aqui provavelmente poderá te dar mais dicas. Se Templates HTML forem alguma outra coisa específica que eu desconheço, ignore-me. 2009/3/31 Elias Magalhães da Paixão Junior elias...@yahoo.com.br Olá, Boa noite a todos. Amigos, gostaria de saber se há uma procedure em PL/SQL que trabalha com templates html. Alguém sabe? Abraços, Elias -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] CAST no Oracle 9i e 10g
Fala Thiago, tudo em paz? Vamos começar com duas perguntas: 120 é igual a 120,000? 120 é igual a 0x78 (hexadecimal)? Matematicamente sim. Então porque parecem diferentes? A diferença é a representação do número. A representação do número é uma string. O que está diferente não é o número, é o formato, como a gente pode ver pelo exemplo: SQL select cast(120 as number(10,3)) as numero from dual; NUMERO -- 120 SQL col numero for 999D999 SQL select cast(120 as number(10,3)) as numero from dual; NUMERO 120,000 SQL Isso é configuração a nível de cliente. Espero ter ajudado. Um abraço. 2009/3/31 Thiago Delfim tdel...@gmail.com Pessoal, Algúem já teve algum problema desse tipo: select cast(120 as number(10,3)) from dual; No Oracle 9i retorna: 120 No oracle 10g retorna: 120,000 É isso mesmo? Existem diferenças no CAST entre as duas versões do Oracle? Estou usando CAST para que uma VIEW retorne os números no formato NUMBER(10,3). Fiz com CAST no Oracle 10 e funcionou como eu queria, mas no Oracle 9 não. Como eu posso ter o mesmo efeito no Oracle 9 já que o CAST tem comportamento diferente? -- Thiago Delfim Oracle SQL Server Database Administrator Oracle 9i Database Certified Professional tdel...@gmail.com tdelfim%40gmail.com (MSN) Campinas/SP (19) 8204-2681 / 9111-1439 Sent from Campinas, São Paulo, Brazil Rodney Dangerfield - I haven't spoken to my wife in years. I didn't want to interrupt her. [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Campo CLOB/BLOB
Fala Napoleão! Faz tempo mas.. vamos lá. Lembra que o Oracle não (necessariamente) conhece o formato do Excel. Pro Oracle, é um conjunto de caracteres qualquer e ponto final. Uma solução interessante poderia ser você ter uma macro que zerasse a formatação a partir do próprio Excel. Ou exportasse para CSV por exemplo. Tudo depende da sua necessidade. 2009/3/19 Napoleão Cristiano X. Sanabia cristiano_sana...@yahoo.com.br Olá pessoal, No banco da minha aplicação possuo alguns campos do tipo CLOB e que deverão ser exportados para o Excel. Esses meus campos são gravados memorandos, que na verdade nada mais é que um documento no formato HTML com as suas tags. Quando eu exporto esses campos para o Excel, a formatação permanece, por exemplo, os tipos das fontes, tamanho, cores, etc . . . Sendo assim, gostaria de saber se diretamente no meu select existe alguma forma de tratar esse campo como texto sem formatação (uma conversão). É possível? 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] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Socket no Oracle
UTL_TCP: http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96612/u_tcp.htm 2009/3/19 Welvis Douglas wel...@stcruz.com.br Opa.. usar socket dentro do oracle... cosigo fazer isso, tem algum pacote que me proporciona utilizar esse tipo de coisa ? att, Welvis - Original Message - From: Welvis Douglas To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Sent: Thursday, March 19, 2009 8:38 AM Subject: [oracle_br] Socket no Oracle Olá pessoal, alguem sabe me dizer se consigo usar Socket dentro do oracle ? vlw... att, Welvis [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Erro de rollback
, (0 - SUM(LL.PIS)) PIS, (0 - SUM(LL.COFINS)) COFINS FROM FATURA_CADASTRO F, FATURA_CONSUMO FTCO, CLASSE C, TENSAO T , ( SELECT /*+ RULE */ L.unid_ident_uc UC,L.fatr_mes_ano_fatmto MESANO,L.fatr_numero_fd FD, SUM(DECODE(L.edev_cod_enc_dev,31,NVL(L.lanc_valor_moeda_corrente,0),0)) PIS, SUM(DECODE(L.edev_cod_enc_dev,32,NVL(L.lanc_valor_moeda_corrente,0),0)) COFINS FROM LANCAMENTO L WHERE L.unid_ident_uc 0 AND L.tenc_tipo_enc_dev = 6 AND L.edev_cod_enc_dev IN (31,32) GROUP BY L.unid_ident_uc ,L.fatr_mes_ano_fatmto ,L.fatr_numero_fd ) LL WHERE F.ftcd_dt_contab = TO_DATE('01-JAN-08','DD-MON-RR') AND F.ftcd_dt_contab = TO_DATE('01-JAN-09','DD-MON-RR') and f.ftcd_sit_fatura in ('CANC','SUBS') and f.ftcd_classe = 1 AND FTCO.ftco_ident_uc = F.ftcd_ident_uc AND FTCO.ftco_mes_ano_fatmto = F.ftcd_mes_ano_fatmto AND FTCO.ftco_numero_fd = F.ftcd_numero_fd AND FTCO.ftco_ident_uc = 0 AND FTCO.ftco_mes_ano_fatmto = F.ftcd_dt_contab AND FTCO.ftco_numero_fd = 0 AND T.tens_tensao = F.ftcd_tensao AND C.clas_classe = F.ftcd_classe AND LL.UC(+) = F.FTCD_IDENT_UC AND LL.MESANO(+) = F.FTCD_MES_ANO_FATMTO AND LL.FD(+) = F.FTCD_NUMERO_FD GROUP BY TO_CHAR(F.FTCD_DT_CONTAB,'MM/') , C.clas_descr_classe , f.ftcd_local , DECODE(FTCD_NUMERO_FD,0,'1-REGULAR','2-REFATURAMENTO REGULAR') , DECODE(F.FTCD_CLASSE,1, DECODE(NVL(FTCD_INDICA_CASCATA,0),0, DECODE(F.ftcd_cons_ah_kwh, LEAST(F.ftcd_cons_ah_kwh,30),'CONVECIONAL ATÉ 030', LEAST(F.ftcd_cons_ah_kwh,100),'CONVECIONAL 031 - 100', LEAST(F.ftcd_cons_ah_kwh,200),'CONVECIONAL 101 - 200', LEAST(F.ftcd_cons_ah_kwh,300),'CONVECIONAL 201 - 300', LEAST(F.ftcd_cons_ah_kwh,400),'CONVECIONAL 301 - 400', LEAST(F.ftcd_cons_ah_kwh,500),'CONVECIONAL 401 - 500', LEAST(F.ftcd_cons_ah_kwh,1000),'CONVECIONAL 501 - 1000', 'CONVENCIONAL MAIOR QUE 1000 KWH') , DECODE(F.ftcd_cons_ah_kwh, LEAST(F.ftcd_cons_ah_kwh, 30),'RESIDENCIAL-BAIXA RENDA ATÉ-030', LEAST(F.ftcd_cons_ah_kwh,100),'RESIDENCIAL-BAIXA RENDA DE 031 ATÉ 100', LEAST(F.ftcd_cons_ah_kwh,200),'RESIDENCIAL-BAIXA RENDA DE 101 ATÉ 200', 'RESIDENCIAL-BAIXA RENDA MAIOR QUE 200'))) , DECODE(F.FTCD_TENSAO,2,'B2-RURAL' ,3,'B3-DEMAIS CLASSES' ,4,'B4b-ILUMINAÇÃO PÚBLICA' ,7,'A4 - (2,3 A 25 KV)' ,8,'A4 - (2,3 A 25 KV)' ,9,'A3 - 69KV' ,10,'A4 - (2,3 A 25 KV)' ,11,'A4 - (2,3 A 25 KV)' ,T.tens_descr_RESUMIDA_tensao)) GROUP BY MESANO, CLASSE, DECODE(LOCL,1,'CAPITAL','INTERIOR'), NATUREZA, FAIXA, SUBGRUPO SELECT * ORA-01555: instantâneo muito antigo: número de segmento de rollback 6 com nome _SYSSMU6$ muito pequeno *** Script stopped due to error *** *** SCRIPT END : Session:dmit...@ajuri.manaus.com.brDMITOSO%40AJURI.MANAUS.COM.BR(1) 21/2/2009 11:06:55 *** -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Contar linhas inseridas.
Séculos depois... Dá uma olhada na DBA_TAB_MODIFICATIONS. 2009/3/16 Caio Spadafora caiospadaf...@yahoo.com.br Não esqueça de colocar uma trigger que preencha com o valor SYSDATE na coluna criada, ou ainda alterar a propriedade default da coluna para sysdate, assim você consegue fazer uso da proposta do Vagner sem precisar inserir manualmente em cada insert. Atenciosamente, Caio Spadafora, 0011brothers.blogspot.com --- Em seg, 16/3/09, Vagner Santos dbavag...@gmail.comdbavagner%40gmail.com escreveu: De: Vagner Santos dbavag...@gmail.com dbavagner%40gmail.com Assunto: Re: [oracle_br] Contar linhas inseridas. Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Data: Segunda-feira, 16 de Março de 2009, 7:52 Bom dia. A melhor solução na minha opiniâo é? - Colocar um campo data na sua tabela. - Criar um job para rodar um select com suas restrições. Até + Vagner 2009/3/14 roelso_alves roe...@ig.com roelso%40ig.com. br Boa noite pessoal, Gostaria de sabe como posso fazer um query que conte a cada 10 minunto a quantidade de linhas inseridas em uma tabela sendo que tenho que pegar todos os registros inserido em um dia anterior as 24 horas dividir a cada 10 minutos e contar. Agradeço de algum tiver uma ideia Obrigado Roelso® [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] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] importação CSV com CTL
*fields terminated by ',' optionally enclosed by ''* 2008/7/24 Arystydes [EMAIL PROTECTED] Gere o arquivo com outra terminação e informe no ctl. ex: FIELDS TERMINATED BY ' ' - Original Message - From: Rogério Barreto Lo Bello To: [EMAIL PROTECTED] com. br ; Grupo UsuariosOracle ; [EMAIL PROTECTED] com. br Sent: Thursday, July 24, 2008 1:42 PM Subject: [oracle_br] importação CSV com CTL Galera, Meu cliente me fez uma pergunta interessante. Fui testar e tive problemas... Ele me perguntou, oque aconteceria se ele colocasse uma frase com ponto-e-virgula no arquivo Excel que ele tem, se ele importaria o ponto-e-virgula, ou jogaria metade da frase para um campo e metade para outro, criei uma arquivo csv que tem ponto-e-virgula no meio da frase, abri com o NotePad e vi que ele colocou a frase que continha o ponto-e-virgula entre aspas duplas, mas quando testei a integração ele jogou metade da frase para um campo e metade para outro, sendo que a primeira metade iniciava com aspas duplas e a segunda terminava com aspas duplas. Como posso configurar o CTL para entender esse problema??? Vlw Rogério Only two things are infinite, the universe and human stupidity... Albert Einstein (1879 - 1955) [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Loop por arquivos
Qual o Sistema Operacional? Se for UNIX-like, você pode fazer um shell script que faça loop nos arquivos e chame o mesmo script do SQL*Loader que você usou antes. 2008/7/23 brunousjt [EMAIL PROTECTED] Pessoal boa tarde! Preciso fazer uma procedure que percorra todos os arquivos de um diretório e alimentar uma tabela com os dados lidos. Consegui ler e armazenar um unico arquivo através SQL*Loader, porém não é o necessário. Preciso percorrer todos os arquivos de um determinado diretório e inserir as respectivas informações em uma tabela. Agradeço antecipadamente a ajuda. Abraços. Bruno. -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Fwd: Variável de ambiente do SO através do SQL*Plus
Bom dia pessoal, Vocês sabem como pegar um valor do banco de dados (exemplo: o valor do campo numa linha de uma tabela) através do SQL*Plus e definir uma variável de ambiente do SO? Ou mesmo usar uma bind variable como um parâmetro para um script no SO. Exemplo que eu tentei: *host echo :variavel arquivo.ext* Não funcionou. Eu tenho uma solução alternativa pro problema pai, mas surgiu essa curiosidade. __ Atenciosamente, Gleyson Melo 10g OCP, OCE (RAC) [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Fwd: Variável de ambiente do SO através do SQL*Plus
Reginaldo, A saída do spool ficou meio canalhona com espaços e linhas em branco, mas eu confesso que não testei todos os parâmetros do SQL*Plus. Só tirei o HEAD. Quanto a UTL_FILE, eu pensei, mas ficaria um negócio gigantão (nem tanto), com direito a Oracle Directory pra uma necessidade aparentemente simplória. Grato pelas sugestões. 2008/7/9 Reginaldo Ribeiro [EMAIL PROTECTED]: Você poderia salvar diretamente num arquivo utilizando spool ou utl_file e depois dar um cat com grep. Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle Certified Associate 10g DBCom Brazil Consultoria em Tecnologia da Informação skype: rflribeiro mobile: 551192344290 fone: 551162165375 e-mail: [EMAIL PROTECTED] rflribeiro%40dbcom.com.br site: http://www.dbcom.com.br Gleyson Melo wrote: Bom dia pessoal, Vocês sabem como pegar um valor do banco de dados (exemplo: o valor do campo numa linha de uma tabela) através do SQL*Plus e definir uma variável de ambiente do SO? Ou mesmo usar uma bind variable como um parâmetro para um script no SO. Exemplo que eu tentei: *host echo :variavel arquivo.ext* Não funcionou. Eu tenho uma solução alternativa pro problema pai, mas surgiu essa curiosidade. __ Atenciosamente, Gleyson Melo 10g OCP, OCE (RAC) -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Fwd: Variável de ambiente do SO através do SQL*Plus
Tu tá muito safo, Barleta. Tua mãe e o teu pai já diziam isso, hehehe. Abração. 2008/7/9 MA(R)CELO BA(R)LETA™ [EMAIL PROTECTED]: Fala Cleyton, tudo beleza? Nada que uma gambiarra (http://pt.wikipedia.org/wiki/Gambiarra) não resolva a situação. [EMAIL PROTECTED] dba]$ echo $BARLETA [EMAIL PROTECTED] dba]$ BARLETA=`sqlplus -s system/oracle EOF set feed off set pages 0 select instance_name from v\\$instance; exit; EOF` [EMAIL PROTECTED] dba]$ echo $BARLETA rcvcat [EMAIL PROTECTED] dba]$ É possível usar em script também lá vai! Mas nesse caso a variável só vale para a execução do script. Talvez isso seja devido o camarada chamado fork() dos Unix-like... :D [EMAIL PROTECTED] dba]$ ./barleta.sh rcvcat [EMAIL PROTECTED] dba]$ more barleta.sh #!/bin/bash TESTE=$( echo set feed off set pages 0 select instance_name from v\$instance; exit | sqlplus -s system/oracle ) echo $TESTE [EMAIL PROTECTED] dba]$ Acho que é isso... Valews! Marcelo Barleta Oracle Database Administrator Gmail: [EMAIL PROTECTED] http://tech.groups.yahoo.com/group/oracle_pa/post?postID=hU8p2_E94XumRwQhcwmP4jKdAs_nckpXC0BU-FduJj6LXeqc_H8amJYeLCEIfbthMOj7CwsHsls2cjk MSN: [EMAIL PROTECTED] http://tech.groups.yahoo.com/group/oracle_pa/post?postID=41Em6jwavcB5NWKj7fWmH_8PrVuTHMxsM1plB3cneh_35EjsVAVZcyJ2bVpwwvgBfxH25rEhKLPrt5YsmA Skype: mbarleta Mobile: (19) 9244-1289 http://mbarleta.googlepages.com 2008/7/9 Fernando Martins [EMAIL PROTECTED]femartins.pereira%40gmail.com : A idéia do spool é boa, basta formatar assim: set lines 250 set pages 0 set trimspool on set head off set feed off set long 100 Acho que assim já fica melhorsim hehehe 2008/7/9 Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.comgleysonmelo% 40gmail.com: Reginaldo, A saída do spool ficou meio canalhona com espaços e linhas em branco, mas eu confesso que não testei todos os parâmetros do SQL*Plus. Só tirei o HEAD. Quanto a UTL_FILE, eu pensei, mas ficaria um negócio gigantão (nem tanto), com direito a Oracle Directory pra uma necessidade aparentemente simplória. Grato pelas sugestões. 2008/7/9 Reginaldo Ribeiro [EMAIL PROTECTED]rflribeiro%40dbcom.com.br rflribeiro%40dbcom.com.br rflribeiro%40dbcom.com.br : Você poderia salvar diretamente num arquivo utilizando spool ou utl_file e depois dar um cat com grep. Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle Certified Associate 10g DBCom Brazil Consultoria em Tecnologia da Informação skype: rflribeiro mobile: 551192344290 fone: 551162165375 e-mail: [EMAIL PROTECTED] rflribeiro%40dbcom.com.brrflribeiro% 40dbcom.com.brrflribeiro% 40dbcom.com.br rflribeiro% 40dbcom.com.br site: http://www.dbcom.com.br Gleyson Melo wrote: Bom dia pessoal, Vocês sabem como pegar um valor do banco de dados (exemplo: o valor do campo numa linha de uma tabela) através do SQL*Plus e definir uma variável de ambiente do SO? Ou mesmo usar uma bind variable como um parâmetro para um script no SO. Exemplo que eu tentei: *host echo :variavel arquivo.ext* Não funcionou. Eu tenho uma solução alternativa pro problema pai, mas surgiu essa curiosidade. __ Atenciosamente, Gleyson Melo 10g OCP, OCE (RAC) -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] -- -- Fernando Martins DBA Oracle Oracle 9i / 10g DBA Certified Associate Linux Professional Institute Certified God grant us the serenity to accept the things we cannot change, courage to change the things we can, and wisdom to know the difference. [As partes desta mensagem que não continham texto foram removidas] -- Marcelo Barleta Oracle Database Administrator Gmail: [EMAIL PROTECTED] mbarleta%40gmail.com MSN: [EMAIL PROTECTED] mbarleta%40hotmail.com Skype: mbarleta Mobile: (19) 9244-1289 http://mbarleta.googlepages.com [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] UTL_FILE
Oi Cristina, Pela mensagem de erro, parece que você não tem privilégio no pacote UTL_FILE. Creio que você está rodando esse bloco com o seu próprio usuário. Faça logon como usuário SYS e dê um grant de execute neste pacote para o seu usuário. 2008/5/28 Mária Cristina Silva [EMAIL PROTECTED]: Olá!! Moçada sou nova no grupo, e estou com um problema: Talvez alguem possa me ajudar. Estou tentando rodar o bloco abaixo no Oracle 10g, é versão express que existe no site.. * DECLARE* arquivoLog UTL_FILE.FILE_TYPE; *BEGIN* arquivoLog := UTL_FILE.FOPEN('DIR_MARIA', 'TESTE.txt', 'W'); UTL_FILE.PUT_LINE(arquivoLog, 'estou escrevendo algo no arquivo'); UTL_FILE.fclose_all; *END*; Pore´m acontece o seguinte erro abaixo, já declarei no meu arquivo init.ora, mas continua com o mesmo erro... alguém sabe o q posso fazer ??? ORA-06550: linha 2, coluna 14: PLS-00201: o identificador 'UTL_FILE' deve ser declarado ORA-06550: linha 2, coluna 14: PL/SQL: Item ignored ORA-06550: linha 4, coluna 2: PLS-00320: a declaração do tipo desta expressão está incompleta ou incorreta ORA-06550: linha 4, coluna 2: PL/SQL: Statement ignored ORA-06550: linha 6, coluna 20: PLS-00320: a declaração do tipo desta expressão está incompleta ou incorreta ORA-06550: linha 6, coluna 2: PL/SQL: Statement ignored ORA-06550: linha 7, coluna 2: PLS-00201: o identificador 'UTL_FILE' deve ser declarado ORA-06550: linha 7, coluna 2: [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: função com múltiplos parâmetros
Fabiano, O pessoal da Oracle se dá ao luxo de criar funções internas que podem ter qualquer sintaxe, afinal, eles possuem o código-fonte do SGBD. Mas na hora de criar novas funções, você tem alguns limites, como esse. Isso torna a linguagem mais fácil de aprender e torna menos difícil de implementar o compilador. Infelizmente, essa não é uma feature disponível. Uma simulação, seria fazer por string, como o chiappa mencionou. A desvantagem é que você não possui uma checagem em tempo de compilação, apenas em tempo de execução. 2008/5/28 Fabiano Arndt [EMAIL PROTECTED]: pois é, também achei estranho... SQL select greatest(1+1, 50-10/2, 3, 0) from dual; GREATEST(1+1,50-10/2,3,0) - 45 quando eu faço uma chamada à função como mostrado acima to tendo a ilusão de que são expressões... agora o que greatest faz por baixo dos panos, pra mim ainda é um mistério flw 2008/5/28 Andre Santos [EMAIL PROTECTED]andre.psantos.ti%40gmail.com : Fabiano / Chiappa Também achei estranho... pois então a função GREATEST não respeitaria as regras de sintaxe (ou seja, seria uma baita gambiarra). Do modo como o Chiappa disse, seria necessária fazer GREATEST( '1, 2, 3' ), ou seja, um argumento delimitado entre apóstrofos... [ ] André Em 28/05/08, Fabiano Arndt [EMAIL PROTECTED]fabianoallex%40gmail.com escreveu: humm blz. No caso da GREATEST o que ela faz é ter um ÚNICO argumento string, se vc digitar vírgulas ele entende que são vários valores e SEPARA dentro desse único argumento os pedaços via substr, ok ?? ok, mas me diz uma coisa, tem como eu fazer isso que vc disse acima para um stored PL/SQL? valeu 2008/5/28 jlchiappa [EMAIL PROTECTED] jlchiappa%40yahoo.com.brjlchiappa% 40yahoo.com.br: Não friend, não : vc NÃO TEM COMO ter um stored PL/SQL que aceite inúmeros argumentos dinamicamente em run-time, o número de argumentos é FIXO num stored PL/SQL, ok ? No caso da GREATEST o que ela faz é ter um ÚNICO argumento string, se vc digitar vírgulas ele entende que são vários valores e SEPARA dentro desse único argumento os pedaços via substr, ok ?? É alguma coisa tipo : [EMAIL PROTECTED]:SQLaccept v_arg prompt 'Argumento:' Argumento: == aí eu digito numa vez só os caracteres 12, 45, 56[ENTER] == o que obtenho ? Um ÚNICO ARGUMENTO contendo vários valores, que depois via substr eu separo, yes ? [EMAIL PROTECTED]:SQLdefine v_arg DEFINE V_ARG = 12, 45, 56 (CHAR) []s Chiappa [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Otimizador baseado em custo vs regra
Fala Denis! É improvável que você tenha um resultado melhor com o otimizador baseado em regras (RBO). O otimizador baseado em custo (CBO) sabe tudo que o baseado em regras sabe e sabe o tamanho de cada tabela, o número de nulls em um campo, histogramas, Com isso, o CBO, além de mais esperto, tem mais informações pra gerar o provável melhor plano de execução. Exemplo, se você tem uma tabelinha com um bloco de dados e o cara consulta por um campo indexado, o RBO vai te fazer ir pelo índice, enquanto o CBO vai te fazer ler a tabela inteira. Lendo a tabela inteira, você lê apenas um bloco, lendo o índice, você lê dois blocos. Então, o provável é que você tenha uma boa melhora de performance, na verdade. O fato é que ele está utilizando uma versão abaixo da 10g, senão ele não conseguiria mudar pro modo RBO. Não conheço um caso de alguém que tenha migrado. Acho que o risco de fazer uma experiência dessas não é muito grande, já que é só mudar um parâmetro. Você pode agendar um horário de homologação onde os sistemas rodariam normalmente, com o novo parâmetro, e você faria uma coleta dos tempos de resposta das principais consultas, procedimentos, cargas, etc... Depois, você compara esses tempos com aqueles que você tem do uso normal do sistema. Acho que o pior que pode ocorrer é tudo ficar muito lento e acredito que seja uma hipótese improvável. 2008/5/28 Denisd [EMAIL PROTECTED]: Pessoal, um cliente está considerando migrar do otimizador baseado em regra para otimizador baseado em custo. A principal dúvida dele é saber de casos semelhantes, e qual foi o retorno obtido (em termos de performance, etc). Infelizmente (como sempre :-), o cliente esqueceu de incluir a versão do banco e qualquer outra informação sobre tamanho da base, etc. Preciso da experiência de vocês: alguém já fez esse tipo de migração? quais foram os ganhos? existe algum revés? Qualquer informação será bem-vinda. Obrigado pela ajuda. Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Otimizador baseado em custo vs regra
Fala Denis! É improvável que você tenha um resultado melhor com o otimizador baseado em regras (RBO). O otimizador baseado em custo (CBO) sabe tudo que o baseado em regras sabe e sabe o tamanho de cada tabela, o número de nulls em um campo, histogramas, Com isso, o CBO, além de mais esperto, tem mais informações pra gerar o provável melhor plano de execução. Exemplo, se você tem uma tabelinha com um bloco de dados e o cara consulta por um campo indexado, o RBO vai te fazer ir pelo índice, enquanto o CBO vai te fazer ler a tabela inteira. Lendo a tabela inteira, você lê apenas um bloco, lendo o índice, você lê dois blocos. Então, o provável é que você tenha uma boa melhora de performance, na verdade. O fato é que ele está utilizando uma versão abaixo da 10g, senão ele não conseguiria mudar pro modo RBO. Não conheço um caso de alguém que tenha migrado. Acho que o risco de fazer uma experiência dessas não é muito grande, já que é só mudar um parâmetro. Você pode agendar um horário de homologação onde os sistemas rodariam normalmente, com o novo parâmetro, e você faria uma coleta dos tempos de resposta das principais consultas, procedimentos, cargas, etc... Depois, você compara esses tempos com aqueles que você tem do uso normal do sistema. Acho que o pior que pode ocorrer é tudo ficar muito lento e acredito que seja uma hipótese improvável. Um abraço. 2008/5/28 Denisd [EMAIL PROTECTED]: Pessoal, um cliente está considerando migrar do otimizador baseado em regra para otimizador baseado em custo. A principal dúvida dele é saber de casos semelhantes, e qual foi o retorno obtido (em termos de performance, etc). Infelizmente (como sempre :-), o cliente esqueceu de incluir a versão do banco e qualquer outra informação sobre tamanho da base, etc. Preciso da experiência de vocês: alguém já fez esse tipo de migração? quais foram os ganhos? existe algum revés? Qualquer informação será bem-vinda. Obrigado pela ajuda. Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [oracle_br] AJUDA URGENTE - Error em arquivos online
acham que estão seguros a falha de discos com esse tipo de sistema. Sim, os arquivos ficam MUITO mais difíceis de terem qualquer tipo de corrupção de arquivos com esse sistema, mas ele NÃO garante que todos os arquivos estarão lá caso haja qualquer falha, só garante que os que estiverem estarão íntegros. O rapaz perdeu arquivos, e por isso já falei da não redundância. mesmo por que o termo produção não necessita dizer alta performance ou alta disponibilidade. Achei que ambiente de produção era justamente sobre alta disponibilidade. Atenciosamente, http://www.softpartech.com.br/ http://www.softpartech.com.br/ www.softpartech.com.br Thiago Henrique Pojda Desenvolvimento Web +55 41 3033-7676 mailto:[EMAIL PROTECTED]thiago.pojda%40softpartech.com.br mailto:thiago.pojda%40softpartech.com.brthiago.pojda%2540softpartech.com.br mailto:thiago.pojda%40softpartech.com.brthiago.pojda%2540softpartech.com.br [EMAIL PROTECTED] thiago.pojda%40softpartech.com.brmailto: thiago.pojda%40softpartech.com.br thiago.pojda%2540softpartech.com.br mailto:thiago.pojda%40softpartech.com.brthiago.pojda%2540softpartech.com.br Excelência em Softwares Financeiros _ De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto: oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br] Em nome de Carlos Alfredo M. de Menezes Enviada em: terça-feira, 27 de maio de 2008 16:14 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.brmailto: oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br oracle_br%2540yahoogrupos.com.br Assunto: Re: RES: [oracle_br] AJUDA URGENTE - Error em arquivos online Colegas, Tenho visto uma discussão sobre o uso ou não de RAID-5, quero apenas ressaltar que, com exceção de RAID-0, todos as demais implementações de RAID são tolerantes a falhas, não importa se o mecanismo utilizado seja espelhamento, paridade ou alguma combinação destes. Quero também dizer também que existem prós e contras de cada solução RAID, mas todas podem ser utilizadas em ambiente de produção, mesmo por que o termo produção não necessita dizer alta performance ou alta disponibilidade. Att, Carlos Alfredo M. de Menezes Analista de Suporte Sr. S/A Usina Coruripe Açúcar e Álcool (82)3217-2121 Leandro Ortigão Pereira escreveu: Respeitando a sua opinião considero que esta situação é justifica exatamente o não uso do raid 5. Posso ser radical, mas qualquer banco de produção deve ter o máximo de redundância de disco possível. De: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br os.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br [mailto:[EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br os.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br] Em nome de Gleyson Melo Enviada em: terça-feira, 27 de maio de 2008 12:35 Para: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br os.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br Assunto: Re: [oracle_br] AJUDA URGENTE - Error em arquivos online O nosso Banco de Dados aqui roda em RAID 5 e funciona muito bem. É claro que temos um Storage que tem suas funcionalidades extras de redundância. Não é simplesmente condenar o RAID 5, mas ver se ele se aplica bem à situação em questão. 2008/5/27 Leandro Ortigão Pereira [EMAIL PROTECTED] mailto:lopnick%40terra.com.br lopnick%2540terra.com.br com.br mailto:lopnick%40terra.com.br lopnick%2540terra.com.br mailto: lopnick%40terra.com.br lopnick%2540terra.com.br : Pelo que parece vc pedeu a sua flash recovery área. Espero que somente tenha perdido isso. O procedimento é fazer um recover do banco e abri-lo com resetlogs. De qualquer forma vc já perdeu dados. Vc não deveria ter posto um banco de produção em raid 5. Boa sorte. De: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br os.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto: [EMAIL PROTECTED] mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br os.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br%2540yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.broracle_br
Re: [oracle_br] Não encontro solução
Fala Jean! Te confesso que odeio essa mensagens de erro traduzidas, principalmente a * ORA-1008*. *01008, 0, not all variables bound 12801, 0, error signaled in parallel query server %s // *Cause: A parallel query server reached an exception condition. // *Action: Check the following error message for the cause, and consult // your error manual for the appropriate action. // *Comment: This error can be turned off with event 10397, in which // case the server's actual error is signaled instead. * Isso quer dizer que o erro 1008 ocorre durante a execução de um parallel server. Considerando que não seja um bug do Banco, e considerando que eu não conheço Forms :S, procure por uma consulta onde você utiliza bind variables e pode estar deixando uma delas em branco. Vários selects aleatórios parece sintoma de bug, mas como eu não conheço Forms, não posso ir além daí. 2008/5/27 Jean Carlo [EMAIL PROTECTED]: Boa noite galera, Estou a + ou - umas duas semanas com um problema que vem ocorrendo em 3 clientes com bancos 10g em várias versões. O problema está ocorrendo sempre nos relatórios feitos em Reports 6i, isso em vários selects diferentes e aleatóriamente, aparece as mensagem abaixo na tela: ORA-12801: erro assinalado no servidor de consulta paralela P001 ORA-01008: nem todas as variáveis são limitadas Já pequisei por tudo que lugar, e fiz várias alterações sugeridas, mais o problema vem persistindo e sempre nesses 3 clientes, outros que utilizam o mesmo sistema e BD não acontece. Desde já agradeço a atenção de todos. -- att, Jean Carlo Stein da Fonseca Programador PL/SQL Forms/Reports 6i. DBA Oracle Jr. em busca do OCA. (48) 9604-6138 HarpaMail! Garanta o seu!!! www.harpa.com.br -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: RES: RES: [oracle_br] Re: Dúvida - Select bem idiota !!!!
uma procedure. create or replace procedure create_view(mes_ano char) is begin execute immediate('CREATE OR REPLACE VIEW view_teste AS SELECT SYSDATE ' || mes_ano || ' FROM DUAL'); end ; Atenciosamente, Marcelo Alberto Lauschner Tecnologia e Sistemas Auto Pratense Ltda * - Fone: (0XX54) 3242-3615 * - Fax: (0XX54) 3242-3648 * - E-mail: BLOCKED::mailto:[EMAIL PROTECTED]marcelo%40autopratense.com.br marcelo%40autopratense.com.br [EMAIL PROTECTED] marcelo%40autopratense.com.br marcelo%40autopratense.com.br * - WWW: www.autopratense.com.br BLOCKED::http://www.autopratense.com.br/ _ De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.broracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em nome de Luis Eduardo Trovo Enviada em: terça-feira, 13 de maio de 2008 09:02 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Assunto: Re: RES: [oracle_br] Re: Dúvida - Select bem idiota Bom dia Marcelo, Obrigado pela resposta! Sua pergunta é muito pertinente e é importante para contextualizar o problema. Este select em questão, que é apenas um exemplo para não deixar o e-mail tão poluído, se tornará uma View. Todas as vezes que eu tiver que acionar esta View, passarei uma data como parâmetro (na clausula where). E é com base neste valor da data que eu quero compor o === message truncated === -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Dúvida - Select bem idiota!!!!
Luís, O seu problema não é exatamente esse. Você quer usar isso para resolver um problema maior. Se você disser qual o problema, pode ser que a gente dê uma solução bem melhor. 2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED]: Senhores(as), boa tarde! Considerem o seguinte select: SELECT SUM(N.VALOR) VALOR_NF FROM NOTAS N WHERE N.DATA = '01/12/2007'; Este select irá me retornar uma única coluna com o nome de VALOR_NF, porém, eu preciso que o nome desta coluna se chame 12/2007, que é exatamente o mês/ano da data que é passada no where deste select. Alguém tem alguma idéia se isso é possível? Grato. Luís. __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Dúvida - Select bem idiota!!!!
Luís, Eu entendi a sua pergunta. Mas acredito que a melhor solução pode ser encontrada a nível de aplicação. Por isso perguntei o problema. Ex: O problema pode ser que você está gerando um relatório na ferramenta X e essa ferramenta está configurada pra preencher dinamicamente o nome do campo com o primeiro valor encontrado. 2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED]: Gleyson, Pode ser mesmo que eu tenha me expressado mal! O nome da coluna (que é o resultado de uma soma) tem que ser sempre o mês/ano de uma data passada no where. Esta data que é passada no where, sempre varia, pois é um parâmetro. No exemplo que eu dei: SELECT SUM(N.VALOR) VALOR_NF FROM NOTAS N WHERE N.DATA = '01/12/2007'; O resultado seria: VALOR_NF 1200 Porém eu preciso que seja, ao invés de VALOR_NF, seja a data passada no where formatada para mes/ano, ou seja: 12/2007 --- 1200 Tem alguma idéia? Grato. Luís. --- Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.com wrote: Luís, O seu problema não é exatamente esse. Você quer usar isso para resolver um problema maior. Se você disser qual o problema, pode ser que a gente dê uma solução bem melhor. 2008/5/12 Luis Eduardo Trovo [EMAIL PROTECTED] l_trovo%40yahoo.com: Senhores(as), boa tarde! Considerem o seguinte select: SELECT SUM(N.VALOR) VALOR_NF FROM NOTAS N WHERE N.DATA = '01/12/2007'; Este select irá me retornar uma única coluna com o nome de VALOR_NF, porém, eu preciso que o nome desta coluna se chame 12/2007, que é exatamente o mês/ano da data que é passada no where deste select. Alguém tem alguma idéia se isso é possível? Grato. Luís. __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tablespace de Undo muito grande
Fala Luís, Estão ocorrendo muitas transações no horário de pico. É isso. Ou poucas transações incrivelmente mortais. Tente observar a estatística de geração de undo nesse meio tempo 2008/5/7 Luis Eduardo Trovo [EMAIL PROTECTED]: Boa tarde a todos! Aqui na empresa, nosso ambiente é composto por dois servidores, usando o Oracle 10g Rac (ASM). Os mesmos estão instalados em plataforma Linux. Para cada servidor, temos uma tablespace de Undo, onde cada uma tem 5GB. Em horários de pico das aplicações, as UNDOs estão atingindo até 80% destes 5GB disponíveis. Acho que é válido comentar o valor de dois parâmetros - o de Undo_Management está com auto e o de Undo_Retention está com 900. Alguém tem alguma idéia do que pode estar acontecendo? Se precisar de mais detalhes fora estes que comentei, eu mando! Muito obrigado. Luís. __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Tablespace de Undo muito grande
Fala Luís, Não trabalhei na Dedalus. Trabalho em Belém/Pará. 2008/5/7 Luis Eduardo Trovo [EMAIL PROTECTED]: Fala Gleyson! Sim, nos horários de pico bate os 80%, porém, conforme o pessoal vai indo embora e deixando de utilizar os sistemas, este percentual não abaixa gradativamente! Quanto as estatisticas, estas estão legais .. sendo feitas com a frequência certa. Gleyson, por acaso você já trabalhou na Dedalus? Grato. Luís --- Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.com wrote: Fala Luís, Estão ocorrendo muitas transações no horário de pico. É isso. Ou poucas transações incrivelmente mortais. Tente observar a estatística de geração de undo nesse meio tempo 2008/5/7 Luis Eduardo Trovo [EMAIL PROTECTED] l_trovo%40yahoo.com: Boa tarde a todos! Aqui na empresa, nosso ambiente é composto por dois servidores, usando o Oracle 10g Rac (ASM). Os mesmos estão instalados em plataforma Linux. Para cada servidor, temos uma tablespace de Undo, onde cada uma tem 5GB. Em horários de pico das aplicações, as UNDOs estão atingindo até 80% destes 5GB disponíveis. Acho que é válido comentar o valor de dois parâmetros - o de Undo_Management está com auto e o de Undo_Retention está com 900. Alguém tem alguma idéia do que pode estar acontecendo? Se precisar de mais detalhes fora estes que comentei, eu mando! Muito obrigado. Luís. __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] job simples !!!
No Job Action, eu coloco apenas: *'PR_SALDOS_PARCELA_ACOMP;'* Com o ponto-e-vírgula no final, claro, se o jobtype for *PLSQL_BLOCK*. 2008/5/6 mufalani [EMAIL PROTECTED]: Tenta fazer o seguinte: BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name = 'RESENDE_PROCEDURE_DB_GPO', job_type = 'PLSQL_BLOCK', job_action = 'begin PR_SALDOS_PARCELA_ACOMP; End;', start_date = systimestamp + interval '10' second, repeat_interval = 'FREQ=DAILY;BYHOUR=7,12;BYMINUTE=00;BYSECOND=00', end_date = '31/12/2010 10:00:00', enabled = TRUE, comments = 'PROCEDURE PARA ALIMENTAR OS DADOS DE EXECUÇÃO'); END; / -Mensagem original- De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em nome de Arystydes Enviada em: terça-feira, 6 de maio de 2008 12:18 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Assunto: [oracle_br] job simples !!! Olá... preciso de uma ajuda. Criei um Job (abaixo) pra rodar uma procedure chamada PR_SALDOS_PARCELA_ACOMP, mas, está apresentando o seguinte erro ao executar o job. É como se não soubesse que se trata de procedure. Lembro ainda, que a criação da procedure bem como sua execução estão ok !!! Grato, Aristides. SQL BEGIN 2 DBMS_SCHEDULER.CREATE_JOB ( 3 job_name = 'RESENDE_PROCEDURE_DB_GPO', 4 job_type = 'PLSQL_BLOCK', 5 job_action = 'EXECUTE IMMEDIATE PR_SALDOS_PARCELA_ACOMP;', 6 start_date = systimestamp + interval '10' second, 7 repeat_interval = 'FREQ=DAILY;BYHOUR=7,12;BYMINUTE=00;BYSECOND=00', 8 end_date = '31/12/2010 10:00:00', 9 enabled = TRUE, 10 comments = 'PROCEDURE PARA ALIMENTAR OS DADOS DE EXECUÇÃO'); 11 END; 12 / Procedimento PL/SQL concluído com sucesso. SQL EXEC DBMS_SCHEDULER.run_job (job_name = 'RESENDE_PROCEDURE_DB_GPO'); BEGIN DBMS_SCHEDULER.run_job (job_name = 'RESENDE_PROCEDURE_DB_GPO'); END; * ERRO na linha 1: ORA-06550: linha ORA-06550: linha 1, coluna 417: PLS-00222: não existe nenhuma função com o nome 'PR_SALDOS_PARCELA_ACOMP' nesta abrangência ORA-06550: linha 1, coluna 399: PL/SQL: Statement ignored , coluna : ORA-06512: em SYS.DBMS_ISCHED, line 150 ORA-06512: em SYS.DBMS_SCHEDULER, line 441 ORA-06512: em line 1 [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/ -- -- Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Links do Yahoo! Grupos -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Certificação Oracle OCA 10g.
Gustavo, Não é tão simples assim, infelizmente, em relação ao *OCP*(especificamente). Você pode estudar por conta própria e fazer a prova sem problemas. Com isso, você tem *A PROVA*, que algumas empresas vão considerar como evidência suficiente de que você tem o conhecimento de OCP. Por outro lado, para ser *OFICIALMENTE* certificado, você precisa fazer pelo menos um curso oficial e depois enviar, pela internet, um formulário à Oracle informando sobre o local do curso e outras informações. Se você fizer isso e passar na prova de OCP, você ganha um cartãozinho cinza bacaninha e um diploma quase igual ao do OCA uns dois meses depois da prova. Infelizmente, esse lado oficial da certificação é importante porque algumas empresas querem ganhar licitações e títulos e, para isso, precisam comprovar oficialmente a sua certificação. Mas você pode fazer a prova de qualquer jeito que isso vai valer no seu currículo. Se você tiver sorte, de repente você pode receber um treinamento oficial Oracle pago pela empresa onde você trabalha. Se isso ocorrer depois da prova, tudo o que você tem a fazer é enviar o formulário à Oracle e aguardar impaciente :) Abração! 2008/5/5 Fernando Weschenfelder [EMAIL PROTECTED]: Não é necessário realizar nenhum curso oficial. Basta comprar a prova e fazer em algum centro de treinamento. Att, - Mensagem original De: Gustavo Rodrigues [EMAIL PROTECTED]gustavo.sistemas%40gmail.com Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Enviadas: Segunda-feira, 5 de Maio de 2008 12:55:29 Assunto: Re: [oracle_br] Certificação Oracle OCA 10g. Outra dúvida!! Para tirar a 1º certificação OAC, é preciso realizar um curso OFICIAL da Oracle ?? ou podemos estudar por conta ( material da Net) ?? Abraços 2008/5/5 Fernando Weschenfelder fernandowes@ yahoo.com. br: Olá Marcelo, Complementando a informação do Milton, são duas provas para obter a certificação OCP 10g. Uma prova para OCA 10g e outra a própria OCP 10g. Abraço, Fernando W - Mensagem original De: Milton Bastos Henriquis Jr. miltonbastos@ gmail.commiltonbastos% 40gmail.com Para: [EMAIL PROTECTED] os.com.br oracle_br%40yahoog rupos.com. br Enviadas: Segunda-feira, 5 de Maio de 2008 10:49:12 Assunto: Re: [oracle_br] Certificação Oracle OCA 10g. Grande Marcelo!! Aqui é o Miltão... OCA é a primeira certificação da Oracle, portanto, não precisa tirar nenhuma antes dela não. Abraço 2008/5/4 marcelovedovato marcelovedovato@ yahoo.com. br: Ola pessoal. Quando se trata do assunto de certificação várias dúvidas ficam pendentes e muitas vezes informações sobre a certificação ficam desencontradas. Acredito que várias pessoas aqui do Grupo já devem ter feito a OCA 10g, desta forma podem responder as minhas dúvidas sobre a mesma: 1. Para tirar a certificação Oracle OCA 10g é necessário ter feito alguma Certificação da Oracle anteriormente? 2. Caso a resposta da pergunta anterior seja sim, qual a certificação que deve ser realizada antes da OCA 10g? Quem tiver mais informações para poder complementar serão úteis. Obrigado pessoal e ate mais. Atenciosamente, Marcelo Vedovato. -- - - - - Milton Bastos Henriquis Junior (41) 9123-0100 [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] tabela temporaria
conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Resumo 4844
Assunto: [oracle_br] Oracle 10g + PRO*COBOL + AIX Pessoal, não sei mais o que fazer nem onde pesquisar e por isso minha ultima cartada é o forum. Estou com um grande problema... Tenho um ambiente que rodava Oracle 9i no AIX e um sistema que é desenvolvido em Pro*Cobol. Após migrar para o 10g comecaram a aparecer varios problemas no sistema... error code: 114, pc=0, call=1, seg=0 114 Attempt to access item beyond bounds of memory (Signal 11). Alguem ja passou por isso ou tem alguma ideia que possa me dar uma luz? As solucoes dadas no metalink nao me ajudaram e o problema persiste. Ats, Alexandre Tenorio. __ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. HYPERLINK http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ; http://mobile.ya hoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ No virus found in this outgoing message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.4/1395 - Release Date: 24/04/2008 07:24 [As partes desta mensagem que não continham texto foram removidas] No virus found in this incoming message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.5/1400 - Release Date: 27/4/2008 09:39 No virus found in this outgoing message. Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.5/1400 - Release Date: 27/4/2008 09:39 [As partes desta mensagem que não continham texto foram removidas] Voltar ao topo | através de email | Responder através da web Mensagens neste tópico (3) Atividade nos últimos dias a.. 9 Novos usuários Visite seu Grupo Yahoo! Mail Conecte-se ao mundo Proteção anti-spam Muito mais espaço Yahoo! Barra Instale grátis Buscar sites na web Checar seus e-mails . Yahoo! Grupos Crie seu próprio grupo A melhor forma de comunicação Precisa responder? Para responder a uma mensagem no Resumo diário, clique em um dos links Responder na mensagem em questão. Criar novo tópico | Visite seu Grupo na web Mensagens | Links | Banco de dados | Agenda -- 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/ -- Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ -- Alterar configurações via web (Requer Yahoo! ID) Alterar configurações via e-mail: Alterar recebimento para individual | Alterar formato para tradicional Visite seu Grupo | Termos de uso do Yahoo! Grupos | Sair do grupo [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Help para procedure de tratamento de arquivos
Fala Sérgio, tudo bom? Acredito que a melhor solução para o seu problema é utilizar uma *Java Stored Procedure*. Assim, você pode utilizar as classes *File* e *Directory*para listar o conteúdo de um diretório, mover/copiar/deletar arquivos e também utilizar a(s) classe(s) Java de compressão, que desconheço, mas sei que existe(m). Ficam no pacote java.util.zip (Com suporte a *GZIP*). Dê uma olhada nos links abaixo e depois uma pesquisada em Java Stored Procedures: http://java.sun.com/developer/technicalArticles/Programming/compression/ http://exampledepot.com/egs/java.io/TraverseTree.html 2008/4/24 sergio pennacchiotti [EMAIL PROTECTED]: Bom dia! Preciso criar uma procedure para tratamento e manipulação de arquivos e me deparei com alguns problemas: 1- Como retornar uma lista de arquivos de um diretório; 2- Como mover ou copiar/deletar arquivos; 3- Como utilizar o GZIP para descompactar. Estou usando o Oracle 9i e Windows. Agradeceria a boa vontade dos participantes deste grupo. []s Sérgio Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Utilizar gerenciamento automático de memória do 10g
Fala André, Eu tenho usado em um ambiente RAC com Linux e tenho sido feliz. 2008/4/23 André Alves [EMAIL PROTECTED]: Olá amigos, gostaria de saber a opinião de vocês quanto a utilização do gerenciamento automático de memória do 10g através do parâmetro SGA_TARGET. Funciona mesmo ou seria mais adequado usar o padrão antigo, forçando os parâmetros na mão. Obrigado a todos, André - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Exibir foto a partir de campo blob
Fala Rafael, Isso deve ser feito através de uma aplicação e isso depende da tecnologia da aplicação que você estiver utilizando. Normalmente, os objetos de acesso a dados modernos têm em suas entradas de dados para Blob, um Stream de entrada, onde você pode passar o Stream da imagem em questão. Mas como eu disse, isso depende da tecnologia da aplicação utilizada. Pelo SQLPLUS, você vai sofrer, se você conseguir, e não vai resolver o problema de ninguém. Em 08/04/08, Fábio Lima [EMAIL PROTECTED] escreveu: PessoALL, Utilizo PL/SQL + Tool Kit Oracle. tenho uma tabela que armazena fotos em um campo BLOB. Alguém sabe como faço pra exibir essa foto direto de uma consulta nesse campo ? Ou se há como, consultar e salvar essa foto em algum lugar ? onde eu possa referenciar? Valeu, Rafael [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Oracle em Linux - Melhor sistema de arquivos
Fala Gustavo! O ASM é o bicho. A maioria dos sistemas de arquivos padrão que você utilizar não é otimizado para Bancos de Dados e sim para usos gerais. O ASM é próprio da Oracle e funciona sobre Raw Devices. Mesmo sem RAC, é uma boa opção. O ASM possui uma ferramenta chamada asmcmd, com a qual você pode navegar pelos arquivos do Banco, mais ou menos como um bash pré-histórico. Ele também te permite incluir um novo disco físico que você comprou de tal forma que ele mesmo se encarrega de fazer o balanceamento para o outro disco novo. Se você estiver receoso de usar o ASM mas, mesmo assim, quiser extrair o melhor da performance, podes utilizar Raw Devices direto, mas em termos de administração é chato demais, além de você ficar dependendo do Administrador de redes se você não tiver acesso pra fazer as coisas sozinho. Em 03/04/08, Gustavo Veríssimo [EMAIL PROTECTED] escreveu: Bom Dia Lista, Na empresa onde trabalho estamos implementando um servidor Oracle 10g no linux da oracle (Oracle Enterprise Linux 5) Gostaria de saber de vocês sobre qual tipo de sistema de arquivos usar, se alguem já tem experiencias e sabe qual tem melhor desempenho pra rodar o banco, se XFS, RaiserFS ou ext3 mesmo... Desde já agradeço!!! Gustavo Veríssimo [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/ -- Funções, Procedures, propostas de emprego - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ Links do Yahoo! Grupos -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Criação de Trigger.
Fala Miguel! Antes de tudo, dá uma olhada na Auditoria do próprio Banco de Dados Oracle. Já tem muita coisa lá que pode te poupar tempo. Para pegar as informações que você quer, utilize a função SYS_CONTEXT, onde você passa como parâmetro o contexto e a variável. O contexto USERENV é o padrão para o que você quer. Exemplos: SYS_CONTEXT('USERENV', 'SESSION_USER') = retorna o usuário da sessão. SYS_CONTEXT('USERENV', 'IP_ADDRESS') = retorna o IP da sessão. Em 02/04/08, Miguel Alessandro May [EMAIL PROTECTED] escreveu: Pessoal, bom dia. Preciso de uma ajuda urgente na criação de uma Trigger. O que preciso é o seguinte: Preciso criar um tipo de auditoria em uma tabela que contem os preços de alguns produtos, gostaria de salvar os valores antigos e os valores pós update. Até aí tudo bem, consegui sem nenhum tipo de problemas. Mas preciso pegar ainda algumas informações da v$session como nome do usuário do sistema operacional e o nome do computadorComo eu consigo fazer isso? Se é que eu consigo? Não sei se me expressei direito...mas é isso. Por favor me ajudem Obrigado [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Aproveitamento de memória
Fala Diogo, Se este aumento de memória foi em função do Oracle, aumente SGA_TARGET e PGA_TARGET, se você estiver utilizando Automatic Memory Management. Aproveite e aumente o tamanho máximo de segmento de memória no Linux, no parâmetro shmmax no sysctl.conf. Em 10/03/08, Diogo Lopez [EMAIL PROTECTED] escreveu: Boa tarde, Sou iniciante, e estou fazendo um upgrade de memória em um server com Oracle 9i em um RHEL 4 É um server dedicado somente ao banco que possui atualmente 2GB de memória. Estamos dobrando esse valor pra 4GB e gostaria de saber se existe algum parametro no Linux ou Oracle para aproveitar melhor esse upgrade. Abraços, Diogo [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] criação de indice
Fala Orfeu! Bom, não faz sentido o Delphi enxergar o índice. Na verdade, a aplicação se preocupa em enviar o comando SQL e o otimizador do Oracle se preocupa em escolher o índice que vai ser utilizado. O nome do índice não faz sentido ali, a menos que você esteja utilizando hints. É esse o caso? Quando você cria um índice, você tem que dar o nome dele, a menos que seja uma chave primária ou outro índice especial como aqueles utilizados por LOBs. Qual a situação aí? Na verdade, acho que não ficou muito claro qual é o problema. Em 05/03/08, orfeu lima [EMAIL PROTECTED] escreveu: Srs, quando crio um indice com dois campos, no qual o primeiro é descendente, ele está criando com aspas duplas. No meu ambiente trabalhamos com delphi, e com isso o delphi não consegue enxergar o indice, uma vez que o indice é criado com um nome diferente mais ou menos parecido com esse .SYS_NC00018$. Alguém saberia me dizer se tem algum comando ou sintaxe que altere isso. O comando usado é o seguinte: create INDEX sirhu.idx_ferias ON sirhu.ferias ( periodorelativo DESC, inicio ASC ) PCTFREE 10 INITRANS 2 MAXTRANS 255 TABLESPACE sistemastbl STORAGE ( INITIAL 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 )NOLOGGING agradeço a atenção __ Veja mapas e encontre as melhores rotas para fugir do trânsito com o Live Search Maps! http://www.livemaps.com.br/index.aspx?tr=true [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Insert ou Update
Fala Haroldo! O Comando MERGE tem exatamente a função de resolver esse problema. Dá uma pesquisada. Em 05/03/08, Haroldo Gondim [EMAIL PROTECTED] escreveu: Olá pessoal, tenho um script com uma serie de inserts a fazer, só que alguns vão falhar, pq a chave já está cadastrada, ai nesse caso gostaria de fosse feito um update com esses dados existe alguma maneira de eu executar isso, em um unico comando? -- Haroldo Gondim Torres Filho [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Certificação Oracle 10g ou 9i?
Fala Bruno! Se você tiver tempo, disposição e dinheiro, acredito que a certificação 9i valha a pena pois: 1. Como você mesmo disse, tem um monte de ambientes before-10g por aí; 2. Os profissionais 9i costumam ser muito valorizados por que o caminho da certificação é bem maior (4 provas); 3. Existem planos de migração de versão de empresas e entidades do governo que quase sempre requerem um profissional certificado 9i (nesses tempos); De uma forma ou de outra, vale a pena a certificação 10g pois é bastante atual em relação ao 9i e inclui novas features importantes como Flashback e AWR. Onde eu trabalho, se usa 10g com RAC e eu conheço outros locais com Bancos de Dados de volume considerável também possuem esta versão. Em 04/03/08, Bruno da Silva Goncalves [EMAIL PROTECTED] escreveu: Pessoal, blz? Comecei a fazer uma pós em BD Oracle, e o foco principal é nos preparar para certificação. Até aí tudo bem, mas me certificar em qual versão? Aqui conheço empresas que usam o 8 e 9, não conheço nenhuma empresa q usa o 10g, e mais agora já lançou o 11g..Ichi, gostaria do conselho de vocês, para qual prova estudo? Grato Bruno - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] * Dúvida Conceito *
Fala Robson! Tudo bom? Você tem redundância de discos? Pode ser interessante você gravar em dois locais diferentes se não tiver essa redundância. Quantos grupos de redo você possui? Qual o tamanho dos redos? A sua geração de archives será super-frequente (exemplo: uma vez a cada 5 minutos)? Dependendo de como os seus grupos de redo estiverem configurados, você pode enfrentar algumas esperas durante a geração do archive, se o grupo de redo ainda não foi liberado, o que você passaria a ver no alert.log. Fique de olho nisso. Em 02/03/08, Robson (Terra) [EMAIL PROTECTED] escreveu: Srs(as), Nunca implementei backup com archivelog's e tenho uma dúvida conceitual: Fiz o seguinte procecimento: SQL alter system set log_archive_start = true SCOPE = SPFILE; Sistema alterado. SQL alter system set log_archive_dest = E:\bkp_oracle\banco\TS\LOG\ SCOPE = SPFILE; As dúvidas são: Somente fazendo isso, o banco passa a gravar as transações no local definido??? Existe algum padrão, ou configuração em que eu defino de quanto em quanto tempo são gravados os log's ?? Agradeço antecipadamente pelos retornos. No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.516 / Virus Database: 269.21.3/1306 - Release Date: 1/3/2008 17:41 [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] pl/sql - Melhor forma para varrer uma string posição a posição
Fala Rodrigo! Acho que você poderia colocar a chamada LENGTH(TEXTO(I)) já dentro de uma variável pra não ficar chamando essa função o tempo todo. Não entendi bem o que essa função faz, mas acredito que ela procura um número de dois dígitos dentro de uma string e grava numa tabela, é isso? A linha VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; é uma forma de sair do Loop? Por que +100? Em 03/03/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu: Bom dia senhores, Sei que aqui tem alguns camaradas feras em pl/sql, que não é muito a minha praia, mas todo DBA que tem que saber pelo menos o básico para se virar. Bom a questão é o seguinte: Tenho o código abaixo que está funcionando, porém achei que é uma maneira meia cretina de se varrer uma string e derepente estou escrevendo código demais e não performático. Atenciosamente, Rodrigo Mufalani OCP10g == SET SERVEROUT ON DECLARE TYPE TTEXTO IS TABLE OF PRODTUR_PRT.PRT_DSPRODUTO%TYPE; TYPE TTIPO IS TABLE OF PRODTUR_PRT.PRT_CDTIPOPROD%TYPE; TYPE TCODI IS TABLE OF PRODTUR_PRT.PRT_CDPRODUTO%TYPE; TEXTO TTEXTO; TIPO TTIPO; CODI TCODI; VPOSICAOFRASE INTEGER; VRESULTADO INTEGER; NOITE VARCHAR2(100); LINHAS NUMBER; BEGIN -- INCIALIZACAO DAS VARIAVEIS DBMS_OUTPUT.ENABLE(200); VPOSICAOFRASE := 1; NOITE := ''; SELECT PRT_DSPRODUTO ,PRT_CDTIPOPROD ,PRT_CDPRODUTO BULK COLLECT INTO TEXTO, TIPO , CODI FROM PRODTUR_PRT WHERE PRT_CDTIPOPROD IN ('07','57') AND PRT_LIBERADO = 'S'; FOR I IN TEXTO.FIRST..TEXTO.LAST LOOP WHILE VPOSICAOFRASE = LENGTH(TEXTO(I)) LOOP IF SUBSTR(TEXTO(I),VPOSICAOFRASE,1) BETWEEN '0' AND '9' THEN -- VERIFICA SE EXISTE CARACTER NUMERICO EM TEXTO(I) NOITE := SUBSTR(TEXTO(I),VPOSICAOFRASE,2); VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; ELSE -- VAI PARA A PROXIMA POSICAO NA STRING TEXTO(I) VPOSICAOFRASE := VPOSICAOFRASE + 1; END IF; END LOOP; BEGIN -- FAZER O UPDATE DO CAMPO DE NOITES AQUI UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); -- LIMPANDO AS VARIAVEIS NOITE := ''; VPOSICAOFRASE := 1; EXCEPTION WHEN INVALID_NUMBER THEN -- UPDATE COM O PRIMEIRO VALOR POIS O SEGUNDO É LIXO NOITE := SUBSTR(NOITE,1,1); UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); NOITE := ''; VPOSICAOFRASE := 1; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('NAO FOI POSSIVEL ALTERAR PRODUTO =='||TEXTO(I)); END; END LOOP; END; / -- Na Oi Internet você ganha ou ganha. Além de acesso grátis com qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma, suporte grátis e muito mais. Baixe grátis o Discador Oi em http://www.oi.com.br/discador e comece a ganhar. Agora, se o seu negócio é voar alto na internet, assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em http://www.oi.com.br/bandalarga e aproveite essa moleza! -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Desfragmentar Tablespace
Rewry, O pacote ao qual o Anderson se refere é o DBMS_REDEFINITION. Eu já usei e é uma boa pra quem tem um ambiente que não pode parar. A desvantagem é que você precisa de espaço em disco temporário para reorganizar, ao contrário do export/import e dá muito mais trabalho, principalmente se você for fazer de um por um, pra muitos objetos. Em 03/03/08, Anderson [EMAIL PROTECTED] escreveu: A mais pratica, export, truncate e import. Existe também uma package para recriar a tabela online, mas nunca usei. Existem também alguns softwares que fazem essa organização online, ex..Live Reorg da quest. Anderson Santiago DBA Oracle Sr. www.ruevers.webs.com --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, Rewry [EMAIL PROTECTED] escreveu Bom dia Pessoal, Antes de quaisquer comentario, gostaria de parabenizar a todos pelo Forum. Aprendi muito e ainda estou aprendendo. Bom... como sou novo no oracle, gostaria de saber a maneira mais facil e eficaz de desfragmentar minhas tablespace. Att, Rewry Gouveia Menezes Analista de TI Cocal Cereais Ltda Fone: (34) 3230-4100 Ramal: 4133 Email: [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] ICQ: 336327997 - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] pl/sql - Melhor forma para varrer uma string posição a posição
Fala Rodrigo! Você pode resolver isso utilizando Expressões Regulares, como no exemplo abaixo, onde todas as funções retornam a primeira posição onde se encontra um número de dois dígitos dentro da string, conforme a sua função e zero caso contrário: SQL select regexp_instr('Gley12son', '\d\d') from dual; REGEXP_INSTR('GLEY12SON','\D\D') 5 SQL select regexp_instr('Gleyson', '\d\d') from dual; REGEXP_INSTR('GLEYSON','\D\D') -- 6 SQL select regexp_instr('Gleyson', '\d\d') from dual; REGEXP_INSTR('GLEYSON','\D\D') -- 0 SQL select regexp_instr('00Gleyson', '\d\d') from dual; REGEXP_INSTR('00GLEYSON','\D\D') 1 SQL select regexp_instr('0Gleyso1n', '\d\d') from dual; REGEXP_INSTR('0GLEYSO1N','\D\D') 0 SQL Em 03/03/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu: Isso foi feito para pegar uma descrição e atualizar uma coluna numerica de uma tabela. Exatamente isso, + 100 é para ele sair do laço, isso foi um bacalhau, mas resolveu, eu só queria saber uma forma de ser mais prático, pensei em usar o INSTR, mas ele busca um caractér exato e eu precisava buscar de 0 a 9. Mensagem Original: Data: 11:12:35 03/03/2008 De: Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.com Assunto: Re: [oracle_br] pl/sql - Melhor forma para varrer uma string posição a posição Fala Rodrigo! Acho que você poderia colocar a chamada LENGTH(TEXTO(I)) já dentro de uma variável pra não ficar chamando essa função o tempo todo. Não entendi bem o que essa função faz, mas acredito que ela procura um número de dois dígitos dentro de uma string e grava numa tabela, é isso? A linha VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; é uma forma de sair do Loop? Por que +100? Em 03/03/08, Rodrigo Mufalani [EMAIL PROTECTED] mufalani%40oi.com.br escreveu: Bom dia senhores, Sei que aqui tem alguns camaradas feras em pl/sql, que não é muito a minha praia, mas todo DBA que tem que saber pelo menos o básico para se virar. Bom a questão é o seguinte: Tenho o código abaixo que está funcionando, porém achei que é uma maneira meia cretina de se varrer uma string e derepente estou escrevendo código demais e não performático. Atenciosamente, Rodrigo Mufalani OCP10g == SET SERVEROUT ON DECLARE TYPE TTEXTO IS TABLE OF PRODTUR_PRT.PRT_DSPRODUTO%TYPE; TYPE TTIPO IS TABLE OF PRODTUR_PRT.PRT_CDTIPOPROD%TYPE; TYPE TCODI IS TABLE OF PRODTUR_PRT.PRT_CDPRODUTO%TYPE; TEXTO TTEXTO; TIPO TTIPO; CODI TCODI; VPOSICAOFRASE INTEGER; VRESULTADO INTEGER; NOITE VARCHAR2(100); LINHAS NUMBER; BEGIN -- INCIALIZACAO DAS VARIAVEIS DBMS_OUTPUT.ENABLE(200); VPOSICAOFRASE := 1; NOITE := ''; SELECT PRT_DSPRODUTO ,PRT_CDTIPOPROD ,PRT_CDPRODUTO BULK COLLECT INTO TEXTO, TIPO , CODI FROM PRODTUR_PRT WHERE PRT_CDTIPOPROD IN ('07','57') AND PRT_LIBERADO = 'S'; FOR I IN TEXTO.FIRST..TEXTO.LAST LOOP WHILE VPOSICAOFRASE = LENGTH(TEXTO(I)) LOOP IF SUBSTR(TEXTO(I),VPOSICAOFRASE,1) BETWEEN '0' AND '9' THEN -- VERIFICA SE EXISTE CARACTER NUMERICO EM TEXTO(I) NOITE := SUBSTR(TEXTO(I),VPOSICAOFRASE,2); VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; ELSE -- VAI PARA A PROXIMA POSICAO NA STRING TEXTO(I) VPOSICAOFRASE := VPOSICAOFRASE + 1; END IF; END LOOP; BEGIN -- FAZER O UPDATE DO CAMPO DE NOITES AQUI UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); -- LIMPANDO AS VARIAVEIS NOITE := ''; VPOSICAOFRASE := 1; EXCEPTION WHEN INVALID_NUMBER THEN -- UPDATE COM O PRIMEIRO VALOR POIS O SEGUNDO É LIXO NOITE := SUBSTR(NOITE,1,1); UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); NOITE := ''; VPOSICAOFRASE := 1; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('NAO FOI POSSIVEL ALTERAR PRODUTO =='||TEXTO(I)); END; END LOOP; END; / -- Na Oi Internet você ganha ou ganha. Além de acesso grátis com qualidade, você pode ter contas ilimitadas de email com 1 giga cada uma, suporte grátis e muito mais. Baixe grátis o Discador Oi em http://www.oi.com.br/discador e comece a ganhar. Agora, se o seu negócio é voar alto na internet, assine Oi Internet Banda Larga e ganhe o modem grátis. Clique em http://www.oi.com.br/bandalarga e aproveite essa moleza! -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta
Re: [oracle_br] pl/sql - Melhor forma para varrer uma string posição a posição
Só otimizando a resposta: SQL select regexp_instr('Gley12son', '\d{2}') from dual; REGEXP_INSTR('GLEY12SON','\D{2}') - 5 SQL Assim fica mais simpático :D A documentação da Oracle sobre expressões regulares pode ser encontrada no link abaixo: http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14251/adfns_regexp.htm Em 03/03/08, Gleyson Melo [EMAIL PROTECTED] escreveu: Fala Rodrigo! Você pode resolver isso utilizando Expressões Regulares, como no exemplo abaixo, onde todas as funções retornam a primeira posição onde se encontra um número de dois dígitos dentro da string, conforme a sua função e zero caso contrário: SQL select regexp_instr('Gley12son', '\d\d') from dual; REGEXP_INSTR('GLEY12SON','\D\D') 5 SQL select regexp_instr('Gleyson', '\d\d') from dual; REGEXP_INSTR('GLEYSON','\D\D') -- 6 SQL select regexp_instr('Gleyson', '\d\d') from dual; REGEXP_INSTR('GLEYSON','\D\D') -- 0 SQL select regexp_instr('00Gleyson', '\d\d') from dual; REGEXP_INSTR('00GLEYSON','\D\D') 1 SQL select regexp_instr('0Gleyso1n', '\d\d') from dual; REGEXP_INSTR('0GLEYSO1N','\D\D') 0 SQL Em 03/03/08, Rodrigo Mufalani [EMAIL PROTECTED] escreveu: Isso foi feito para pegar uma descrição e atualizar uma coluna numerica de uma tabela. Exatamente isso, + 100 é para ele sair do laço, isso foi um bacalhau, mas resolveu, eu só queria saber uma forma de ser mais prático, pensei em usar o INSTR, mas ele busca um caractér exato e eu precisava buscar de 0 a 9. Mensagem Original: Data: 11:12:35 03/03/2008 De: Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.com Assunto: Re: [oracle_br] pl/sql - Melhor forma para varrer uma string posição a posição Fala Rodrigo! Acho que você poderia colocar a chamada LENGTH(TEXTO(I)) já dentro de uma variável pra não ficar chamando essa função o tempo todo. Não entendi bem o que essa função faz, mas acredito que ela procura um número de dois dígitos dentro de uma string e grava numa tabela, é isso? A linha VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; é uma forma de sair do Loop? Por que +100? Em 03/03/08, Rodrigo Mufalani [EMAIL PROTECTED]mufalani%40oi.com.br escreveu: Bom dia senhores, Sei que aqui tem alguns camaradas feras em pl/sql, que não é muito a minha praia, mas todo DBA que tem que saber pelo menos o básico para se virar. Bom a questão é o seguinte: Tenho o código abaixo que está funcionando, porém achei que é uma maneira meia cretina de se varrer uma string e derepente estou escrevendo código demais e não performático. Atenciosamente, Rodrigo Mufalani OCP10g == SET SERVEROUT ON DECLARE TYPE TTEXTO IS TABLE OF PRODTUR_PRT.PRT_DSPRODUTO%TYPE; TYPE TTIPO IS TABLE OF PRODTUR_PRT.PRT_CDTIPOPROD%TYPE; TYPE TCODI IS TABLE OF PRODTUR_PRT.PRT_CDPRODUTO%TYPE; TEXTO TTEXTO; TIPO TTIPO; CODI TCODI; VPOSICAOFRASE INTEGER; VRESULTADO INTEGER; NOITE VARCHAR2(100); LINHAS NUMBER; BEGIN -- INCIALIZACAO DAS VARIAVEIS DBMS_OUTPUT.ENABLE(200); VPOSICAOFRASE := 1; NOITE := ''; SELECT PRT_DSPRODUTO ,PRT_CDTIPOPROD ,PRT_CDPRODUTO BULK COLLECT INTO TEXTO, TIPO , CODI FROM PRODTUR_PRT WHERE PRT_CDTIPOPROD IN ('07','57') AND PRT_LIBERADO = 'S'; FOR I IN TEXTO.FIRST..TEXTO.LAST LOOP WHILE VPOSICAOFRASE = LENGTH(TEXTO(I)) LOOP IF SUBSTR(TEXTO(I),VPOSICAOFRASE,1) BETWEEN '0' AND '9' THEN -- VERIFICA SE EXISTE CARACTER NUMERICO EM TEXTO(I) NOITE := SUBSTR(TEXTO(I),VPOSICAOFRASE,2); VPOSICAOFRASE := LENGTH(TEXTO(I)) +100; ELSE -- VAI PARA A PROXIMA POSICAO NA STRING TEXTO(I) VPOSICAOFRASE := VPOSICAOFRASE + 1; END IF; END LOOP; BEGIN -- FAZER O UPDATE DO CAMPO DE NOITES AQUI UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); -- LIMPANDO AS VARIAVEIS NOITE := ''; VPOSICAOFRASE := 1; EXCEPTION WHEN INVALID_NUMBER THEN -- UPDATE COM O PRIMEIRO VALOR POIS O SEGUNDO É LIXO NOITE := SUBSTR(NOITE,1,1); UPDATE PRODTUR_PRT SET PRT_NUMERONOITE = TO_NUMBER(NOITE) WHERE PRT_CDTIPOPROD = TIPO(I) AND PRT_CDPRODUTO = CODI(I); NOITE := ''; VPOSICAOFRASE := 1; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('NAO FOI POSSIVEL ALTERAR PRODUTO =='||TEXTO(I)); END; END LOOP; END
Re: [oracle_br] Abrir transação explicitamente
Fala Cido... Bom, eu não entendi bem o que você quis dizer com aninhar transações, mas vamos pensar em duas possibilidades: 1) Considerando, ao pé da letra, aninhar transações como sendo uma transação por loop... é só comitar a cada passo que está resolvido. Qual o problema em fazer isso com um comando DML? 2) Considerando que você tem uma transação gigante e está em um loop, presumindo que você não quer que um único registro faça você fazer rollback em tda a transação... Aí você pode utilizar o conceito de SavePoints. É como se fosse um, digamos, meio commit. Se você chamar um savepoint como SAVEPOINT FULANO;, depois você pode fazer um rollback para este ponto, utilizando o comando ROLLBACK TO FULANO;. 3) Uma outra opção que pode te deixar feliz é criar uma procedure utilizando a cáusula PRAGMA AUTONOMOUS_TRANSACTION. Uma procedure com esta especificação roda em uma transação separada daquela que o chamou. Você tem algumas opções que, em geral, resolvem a maioria dos problemas. Se este não se enquadrar no que você quer, avise-nos, contando um pouco mais de detalhes sobre o problema. Em 03/03/08, cido_re [EMAIL PROTECTED] escreveu: Boa tarde Senhores(as). Por favor, alguém pode me dizer se posso abrir uma transação explicitamente, algo do tipo open transaction, etc... Sei que abro uma transação a cada comando DML, porém fui questionado quanto a abrir explicitamente e não soube responder. Só pra explicar o motivo, o desenvolvedor está querendo aninhar as transações. Obrigado pela atenção. Cordialmente. Cido -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Livro - É bom?
Conheço e recomendo. Em 03/03/08, Élisson Ferraz Almeida [EMAIL PROTECTED] escreveu: olá pessoal, aproveitando o gancho alguem conhece esse aki? OCA: Oracle 10g Administration I Study Guide: Exam 1Z0-042 Chip Dawes, Bob Bryla, Joseph C. Johnson, Matthew Weishan ISBN: 978-0-7821-4367-6 Paperback 672 pages December 2004 http://www.sybex.com/WileyCDA/SybexTitle/productCd-0782143679.html 2008/3/3 Anderson Ferreira [EMAIL PROTECTED]andfr2003%40hotmail.com : Onde posso comprar este livro em sua versão original? Aqui em Sp msm? Atenciosamente,Anderson FerreiraCel: (+11) 71769208 E-mail: [EMAIL PROTECTED] andfr2003%40hotmail.comOrandfr2003%40hotmail.comOr [EMAIL PROTECTED] aferreira%40mackenzista.com.braferreira%40mackenzista.com.br To: [EMAIL PROTECTED]oracle_br%40yahoogrupos.com.brFromoracle_br%40yahoogrupos.com.brFrom: [EMAIL PROTECTED] miltonbastos%40gmail.comDatemiltonbastos%40gmail.comDate: Mon, 3 Mar 2008 15:38:55 -0300Subject: Re: [oracle_br] Livro - É bom? Há comentários dele por aqui: http://www.temporeal.com.br/produtos.php?id=170697Sugestão minha: estude por um livro que seja em inglês efaça a prova em inglês. A tradução, tanto da prova quantodos livros, para português, é PÉSSIMA.2008/3/3 Anderson Ferreira [EMAIL PROTECTED] andfr2003%40hotmail.comandfr2003%40hotmail.com: Galera, Estou querendo comprar o seguinte livro: Oracle Database 10g: Certificação OCP: Guia Completo para o Exame Alguém já o leu? Sabe seu o conteudo do livro é forte? e se ajuda msm? pois como vou fazer a minha prova no mês que vem, gostaria de ter mais alguns materiais de apoio. Atenciosamente,Anderson FerreiraCel: (+11) 71769208 E-mail: [EMAIL PROTECTED] andfr2003%40hotmail.comOrandfr2003%40hotmail.comOrandfr2003%40hotmail.comOr [EMAIL PROTECTED] aferreira%40mackenzista.com.braferreira%40mackenzista.com.braferreira%40mackenzista.com.br __ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ [As partes desta mensagem que não continham texto foram removidas] -- Milton Bastos Henriquis Junior(41) 9123-0100[As partes desta mensagem que não continham texto foram removidas] __ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Élisson Ferraz Almeida Empty your mind, be formless. Be shapeless like water. If you put water into a cup, it becomes the cup. You put water into a bottle and it becomes the bottle. If you put it in a teapot it becomes the teapot. Water can flow or can crash. Be water my friend. --Bruce Lee [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] database
Fala Daniel! Quando você instala o Oracle, você tem uma opção de instalar uma base de dados de exemplo para ter dados de teste. Você conhecia? Atende os seus requisitos? Em 28/02/08, danielrivolta [EMAIL PROTECTED] escreveu: gostaria de saber se alguém poderia me enviar uma base de dados para estudo? agradeço desde já ... [EMAIL PROTECTED] Danielrivolta%40hotmail.com -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Criação de usuário
Oi Valquíria, tudo bom? Verifique nas views DBA_TAB_PRIVS e DBA_SYS_PRIVS, quais os privilégios que o PUBLIC tem. Qualquer privilégio dado a ele vale para qualquer usuário. No seu caso, pode ser que o PUBLIC tenha privilégios como CREATE ANY TABLE e ALTER ANY TABLE. Em 27/02/08, Valquiria Chartone Cabral [EMAIL PROTECTED] escreveu: Bom dia! Estou com um problema aqui... Quando eu tento criar qualquer usuário, mesmo não dando nenhuma premissão a ele, ele consegue fazer qualquer coisa em qualquer schema. Não dei grant nenhum a ele. Segue o scrip de criação do usuário: CREATE USER ADSPREV PROFILE DEFAULT IDENTIFIED BY ext_usi2008 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK; Alguém tem alguma noção do que pode estar ocorrendo? Obrigada. Valquíria Chartone Cabral Analista de Sistemas SEI/FSFX - * 3829-9084 [EMAIL PROTECTED] vccabral%40usiminas.com.br www.fsfx.com [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Problema Desabilitar Self Tuning do 10g e problemas com performance de query
Fala Bruno, A sua primeira pergunta refere-se ao Automatic Memory Management, disponível a partir da versão 10g do Banco Oracle. Para desabilitar essa feature, você precisa apenas zerar o valor do parâmetro SGA_TARGET. Particularmente, tenho usado esse recurso e ele tem sido benéfico, em um ambiente RAC com um Banco de 500Gb. Quanto à segunda pergunta... - Como você sabe que ele faz um Full-Table-Scan quando ele executa já que o plano de execução não mostra um Full-Table-Scan? - A consulta já rodou com performance boa alguma vez? - Que tipo de consulta é essa? Agregação de dados de 5 anos (exemplo)? - Qual o volume de dados das tabelas envolvidas? - Quantas linhas você espera que a consulta retorne? - Quantos % da Tabela essas linhas representam? - Quantos % das tabelas são acessados através de índices? - Você confirmou que as estatísticas estão atualizadas para todos os objetos envolvidos? - Que tipos de operação estão envolvidos na consulta? Neste Loops? Hash Joins? - Você está chamando a consulta no Sqlplus ou na aplicação? Está utilizando bind variables? - A consulta faz acesso a algum outro Banco através de Db-Link? - A consulta utiliza funções? - Você não quer postar o plano de execução da consulta aqui, se não for informação restrita? Podem parecer muitas perguntas mas acredito que a maioria delas pode ser respondida rapidamente e pode dar um bom embasamento pra quem tentar tunar a consulta remotamente baseado apenas em textos escritos. Em 27/02/08, rei_do_delphi [EMAIL PROTECTED] escreveu: Galera, preciso de uma ajuda para ajudar um amigo meu. O cliente utiliza banco 10g, provavelmente em algum sistema unix. 1º Ele não tem muitos conhecimentos de 10g e me perguntou se eu sabia como desabilitar o dimensionamento automático de memória do 10g. Sei que é através do parâmetro SGA_MAX_SIZE, porém não sei qual valor ele deve assumir, seria 0? Os outros parâmetros como share_pool_size, buffer_pool_size e large_pool size, se sga_max_size0 então ele ajuda o SGDB a escolher o tamanho mais correto dos buffers, correto? De fato, como ele realmente desabilitaria esta feature do 10g? 2º Ele esta rodando uma query que o plano de execução esta muito bom, utilizando índice e tudo ( set explain trace only). Porém, quando ele vai executar, o plano de execução não utiliza o índice e faz um table full scan, aumentando em mais de 2000 o plano de execução. Eu recomendei a atualização das estatísticas do banco, porém ele falou que já as atualizou e continua com a lentidão da query, o que pode ser? Obrigado a todos desde já. -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Listener utilizando 100% CPU
Fala Alexandre, tudo em paz? Bom, o Listener é um cara meio preguiçoso na verdade.. ele acorda e fica lá, meio ocioso, esperando a galera conectar, o que me faz pensar em bug mas... vamos analisar. 1. Não está faltando alguma informação? Entrou algum sistema novo? O pessoal da rede mudou alguma regra de firewall? Existe firewall em software no próprio servidor do Banco? 2. Você já olhou os logs do listener e do banco? Não diz nada por lá? 3. Qual é o processo que usa a maior parte do processador? Você já verificou com o top ou outro utilitário similar? Mande essas informações pra gente discutir mais um pouco. Em caso de desespero, ative o trace do listener e dê uma olhadinha. Com mais desespero, abra um chamado :D Para ativar o trace do listener faça: LSNRCTL set trc_level ADMIN E o contrário é: LSNRCTL set trc_level OFF Em 26/02/08, Alexandre Pinho [EMAIL PROTECTED] escreveu: Srs., boa noite Na tentativa de iniciar o listener , através do comando ( lsnrctl start ) , via sistema operacional Linux : , 100% de CPU é atingida. Com isso, não consigo estabelecer conexão com o banco * Algum de vocês já consegui restabelecer essa situação? * Grato pela ajuda! Versão Oracle - Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options Linux - Linux Fedora 2.6.18-1.2257.fc5smp Alexandre S. de Pinho [EMAIL PROTECTED] alexandre%40finnet.com.br Tel: +55 11 4133-4459 www.finnet.com.br P Antes de imprimir, veja se realmente é necessário. _ AVISO LEGAL Esta mensagem é destinada exclusivamente para a(s) pessoa(s) a quem é dirigida, podendo conter informação confidencial e/ou legalmente privilegiada. Se você não for destinatário desta mensagem, desde já fica notificado de abster-se a divulgar, copiar, distribuir, examinar ou, de qualquer forma, utilizar a informação contida nesta mensagem, por ser ilegal. Caso você tenha recebido esta mensagem por engano, pedimos que nos retorne este E-Mail, promovendo, desde logo, a eliminação do seu conteúdo em sua base de dados, registros ou sistema [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] problemas de conexão
Fala Orfeu! Você pode descrever com mais detalhes o problema? Entendi que você tem uma aplicação na DMZ que acessa o Banco na rede interna. É isso? O Ambiente é RAC? O Listener é local? Se for, é muito provável que a aplicação esteja sendo barrada pelo Firewall. Nesse caso, você, a partir da máquina da aplicação, tenta logar no servidor utilizando o sqlplus (faça isso pelo menos umas três vezes). Se funcionar, aí você vai precisar dar mais informações. Se não funcionar, é um provável problema de rede. Ah sim, antes disso, tente pingar o servidor de Banco a partir dessa máquina na DMZ. Em 22/02/08, orfeu lima [EMAIL PROTECTED] escreveu: Srs, estou com o seguinte problema. No meu ambiente local(rede interna), o meu aplicativo conectar normalmente com o banco, mas no meu ambiente externo(dmz), tenho problema de conexão. Alguém saberia me dizer o que pode estar acontecendo?? __ Receba GRÁTIS as mensagens do Messenger no seu celular quando você estiver offline. Conheça o MSN Mobile! http://mobile.live.com/signup/signup2.aspx?lc=pt-br [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] ORA-00600
Fala Petrônio! É isso mesmo! De qualquer forma, você pode utilizar o parâmetro ([1236]) e utilizar uma ferramenta do metalink (que esqueci o nome) própria para encontrar o que fazer em relação a esse evento específico. Acho que é ORA-600 LOOKUP o nome. Com isso, de repente, você descobre, sem precisar abrir um chamado, que um determinado patch resolve o problema. Mas, se você tem um tempo, melhor abrir um chamado mesmo. Em 22/02/08, Petronio Moura [EMAIL PROTECTED] escreveu: Pessoal, sou novo no oracle e já peguei de cara esse erro: ORA-00600: internal error code, arguments: [1236], [], [], [], [], [], [], [] dando uma pesquisada no google eu vi muita gente dizendo que esse erro deve ser reportado direto ao suporte da Oracle, mas outras pessoas aparentemente conseguiram resolver. Alguém pode me dar uma luz ou é coisa pro suporte direto mesmo? Valeu. - Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Migração Oracle 8i para 10g
select decode( OBJECT_TYPE, 'PACKAGE BODY', 'alter package ' || OWNER||'.'||OBJECT_NAME || ' compile body;', 'alter ' || OBJECT_TYPE || ' ' || OWNER||'.'||OBJECT_NAME || ' compile;' ) from dba_objects where STATUS = 'INVALID' and OBJECT_TYPE in ( 'PACKAGE BODY', 'PACKAGE', 'FUNCTION', 'PROCEDURE', 'TRIGGER', 'VIEW' ) order by OWNER, OBJECT_TYPE, OBJECT_NAME; Colocar todas as triggers como enable; select 'alter table '||owner||'.'||table_name||' enable all triggers;' from dba_tables; Verificar constraints desabilitadas; select 'alter table '||owner||'.'||table_name||' enable constraint '||constraint_name||';' from dba_constraints where status = 'DISABLED'; Setar JOB_QUEUE_PROCESSES; alter system set job_queue_processes = n scope=both; Verificar JOB´s; set line 200; col what format a60; col interval format a30; select job, what, to_char(next_date,'DD/MM/ hh24:mi:ss'), to_char(last_date,'DD/MM/ hh24:mi:ss'), interval, failures, broken from dba_jobs order by what; Conferência de objetos migrados; select count(*), owner, object_type from dba_objects group by owner, object_type order by owner, object_type Conferência de Objetos Inválidos e comparar o que se tinha antes Colocar o Banco em modo Archive (se necessário) shutdown immediate; startup mount; alter database archivelog; alter database open; alter system switch logfile; (para testar) Colocar listener no ar; lsnrctl start; Verificar tnsnames.ora; export por owner e full para ver se está tudo ok (JVM, principalmente) Liberar as CRON que foram comentadas Liberar para testes Anderson Haertel Rodrigues Consultor Oracle TEIKO Soluções em Tecnologia da Informação Blumenau/SC (47) - 3035 3777 - (47) 9178 0170 www.teiko.com.br --- Gleyson Melo [EMAIL PROTECTED] gleysonmelo%40gmail.comgleysonmelo%40gmail.com escreveu: Élisson! Embora o exp possa fazer todo o trabalho sujo pra você, lembre-se de criar as tablespaces na mão, já que o nome dos datafiles vai mudar (De Windows pra Linux). Aproveite, nessa hora, para corrigir datafiles super-dimensionados ou muitos datafiles. Lembre-se de analisar a sua estrutura de discos do ambiente de destino para aproveitá-la ao máximo. Por exemplo, se você tiver duas tablespaces com cargas de trabalho similares e que representem a maioria da carga do Banco, coloque-as em discos/gavetas diferentes. Se você tiver um Storage que cria discos virtuais nos mesmos HD's, isso não faz diferença. Aproveite também para colocar em prática alguns planos que podem ter sido deixados de lado devido ao custo, como transformar uma determinada tabela gigante em IOT. É um bom momento para isso. Você faz isso recriando a tabela antes e deixando-as sem linhas. Depois você faz o que o pessoal mencionou. Faz o export com rows=n e ignore=y para montar apenas a estrutura. Isso é bom porque você pode encontrar problemas na criação das tabelas sem perder tanto tempo. Depois você faz um export full e importa isso no Banco já pré-pronto. Lembre-se de verificar os Oracle Directories se alguma procedure for utilizada, assim como verificar a validade dos DB Links. Copie o TNSNAMES.ORA do Banco antigo para o novo, corrigindo só a entrada do próprio banco novo. Em 08/01/08, rflribeiro [EMAIL PROTECTED]rflribeiro%40dbcom.com.br rflribeiro%40dbcom.com.br escreveu: Esqueci de mencionar que a tabela userexport contém o nome de todos os usuários que serão exportados. Ela só contém uma coluna chamada usuario. Ribeiro, Reginaldo Administrador de Bancos de Dados Oracle Certified Associate 10g _ DBcom IT Experts skype: rflribeiro msn: [EMAIL PROTECTED] rflribeiro%40dbcom.com.brrflribeiro%40dbcom.com.br rflribeiro%40dbcom.com.br mobile: 551192344290 fone: 551162165375 e-mail: [EMAIL PROTECTED] rflribeiro%40dbcom.com.brrflribeiro%40dbcom.com.br rflribeiro%40dbcom.com.br site: www.dbcom.com.br rflribeiro wrote: Vê se isto atende ao que você precisa. Customize para se adequar ao seu ambiente. Utilize somente o que couber no seu caso. Qualquer coisa é só dar um alô. set serveroutput on spool e:\3m\usuariosExportacao8i.sql; begin for cUsuario in (select distinct u.name, u.password, d.default_tablespace from user$ u, dba_users d, userexport e where u.type# = 1 and u.name = d.username and u.name = e.usuario) loop -- criacao dos tablespaces dbms_output.put_line(''); for cTablespace in (select
Re: [oracle_br] JOB KILL PROCESSO
Oi Elaine, tudo bom? O Oracle já tem um recurso pra resolver esse problema. Chama-se PROFILES. Dê uma pesquisadinha rápida que você resolve isso. Em 20/02/08, Elaine [EMAIL PROTECTED] escreveu: gostaria de saber como criar um JOB para quando um usuario ficasse in wait_class igual a Idle e o valor da coluna seconds_in_wait fosse maior que 180 segundos. A query abaixo retorna a linha que eu quero que seja matado o processo: *select sid, username, osuser, machine, wait_class, action, event,seconds_in_wait from v$session where username is not NULL and WAIT_CLASS=''Idle'' and event=''SQL*Net message from client'' and action=''Main session'' and seconds_in_wait 180;'* Gostaria que o kill fosse pela ID. Porque o usuário de banco que todos os clientes externos usam para conectar o sistema com o banco é o mesmo. Att, Elaine -- -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Oracle RAC+ Java
Welvis, Pede pro pessoal fazer o seguinte: Criar um método (no seu modelo de objetos) que retorne uma nova conexão, de fora do pool, configurada como DEDICATED para efetuar os processamentos longos. Conexões compartilhadas. Se você tiver um volume de dados muito grande pra processar, experimente colocar isso pra rodar no Banco, o que pode ser feito através de Java Stored Procedures pra você não se preocupar em escrever regras de negócio em PL/SQL o que, presumo, pode fugir das diretrizes da empresa em questão. Em 20/02/08, Welvis Douglas [EMAIL PROTECTED] escreveu: na realidade são fechamentos mas é feito o processamento na aplicação, como tbm em processos armazenados no banco, recumindo, tem de tudo. mas os maiores ou mais pesados são processos dentro do banco. att, Welvis - Original Message - From: Marcus Pavan To: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Sent: Tuesday, February 19, 2008 8:49 PM Subject: Res: [oracle_br] Oracle RAC+ Java Welvis, estes processamentos pesados são relatórios? Tem links específicos para eles serem executados? []'s Marcus Pavan - Mensagem original De: Welvis Douglas [EMAIL PROTECTED] welvis%40stcruz.com.br Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br Enviadas: Terça-feira, 19 de Fevereiro de 2008 17:09:41 Assunto: Re: [oracle_br] Oracle RAC+ Java Ok, o problema é que ele aloca 50 conexões de uma só vez, o pessoal aqui disse que ele tinha um problema, por isso ele pegar tudo isso de uma vez só, mas ele está correto, ele está apontando para o IP virtual do RAC, só que como ele aloca 50 conexões de uma só vez, normalmente os processos longos.. caen no mesmo srv. resultado, as vzs tenho um srv muendo, e outro lá na boa, com isso vai atrasando os outros processos..! !! vlw. att, Welvis Douglas - Original Message - From: mufalani To: [EMAIL PROTECTED] os.com.br Sent: Tuesday, February 19, 2008 7:04 PM Subject: RES: [oracle_br] Oracle RAC+ Java Welvis, Verifica essa parte do código java da conexão, pois ela deve ficar parecida com o tnsnames.ora para conectar no RAC. -Mensagem original - De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Welvis Douglas Enviada em: terça-feira, 19 de fevereiro de 2008 17:01 Para: [EMAIL PROTECTED] os.com.br Assunto: Re: [oracle_br] Oracle RAC+ Java Eai tranquilo, fala de onde irmão?? então o pessoal estão usando JDBCThin com C3P0, esse é o cara que faz o gerenciamento do Pool.. o complicado é que roda uns processos grandes, e sempre caen no mesmo servidor, devido a deste pool de conexão, ha aplicação é WEB vlw. att, Welvis Douglas! - Original Message - From: Gleyson Melo To: [EMAIL PROTECTED] os.com.br Sent: Tuesday, February 19, 2008 6:46 PM Subject: Re: [oracle_br] Oracle RAC+ Java Fala Welvis! 1. É uma aplicação desktop ou web? 2. JDBC Thin ou OCI? 3. Como está sendo gerenciado esse pool de conexões? Em 19/02/08, Welvis Douglas [EMAIL PROTECTED] com.br escreveu: Olá pessoal, estou com um problema aqui na empresa onde eu trabalhaho, existem um ambiente RAC 10g r2, só que a aplicação java não está alocando as conecções de forma adequada, ex. a aplicação java aloca 50 conecções de uma só vez, só que as vzs quando vai rodar processos muito pesados acabam caindo no mesmo servidor, e o outro fica sem processamento algum. Alguem utiliza RAC com Java para dar alguma dica? att, Welvis Douglas [As partes desta mensagem que não continham texto foram removidas] -- Atenciosamente, Gleyson Melo Oracle Database 10g Administrator Certified Professional [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] O ENPO-BR 2008 (O maior evento de Profissionais de Oracle do Brasil!) será realizado no dia 29 de Março no auditório da FIAP - Faculdade de Administração e Informática Paulista em São Paulo. E tem total apoio deste Grupo. Veja mais em http://www.enpo- br.org/ - - - - - - - - - --- 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/ - - - - - - - - - --- 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] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto