Fechou! estamos aqui para apreender um com outros.

Apreendi muitas coisas aqui no Grupo.
 
Alessandro Lúcio Cordeiro da Silva 
        Analista de Sistema
þ http://alecordeirosilva.blogspot.com/
O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: 
estamos vivos.
                                "Joana de Souza Schmitz Croxato"
 


________________________________
 De: Fabio Prado <fbifa...@gmail.com>
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Terça-feira, 15 de Outubro de 2013 17:24
Assunto: Re: [oracle_br] Bkp de objetos no banco
 


  
Pois é Alessandro, tratando-se de objetos como tabelas eu até sabia disso, mas 
na minha cabeça achava que seria diferente com objetos PL/SQL. 

Agora que descobri a verdade, faz todo sentido funcionar também com PL/SQL, 
pois qq objeto do BD é armazenado internamente em tabelas do DD.

Valeu pela dica!

[]s



Em 15 de outubro de 2013 18:13, Alessandro Lúcio Cordeiro da Silva 
<alecordeirosi...@yahoo.com.br> escreveu:

 
>  
>Olá Fabio,
>
>
>Só para te esclarecer, os comandos DDL são transacionais, eles simplesmente 
>tem uma instrução COMMIT no final, para proteger os dicionarios de dados, como 
>John Watson explica:
>
>
>"The COMMIT and ROLLBACK statements apply only to DML. You cannot roll back a 
>DDL statement: once executed, it is immediately durable. If it were possible 
>to see the
>source code for (for example) the CREATE TABLE command, it would be obvious 
>why. When you create a table, you are in fact doing a transaction against some 
>data dictionary
>tables: at the very least, you are inserting a row into SYS.TAB$, a data 
>dictionary table with one row to define every table in the database, and one 
>or more rows into SYS.COL$,
>a data dictionary table with one row for the definition of every column of 
>every table in the database. Then the command concludes with a COMMIT. This is 
>to protect the
>data dictionary: if the COMMIT were not built into the CREATE TABLE command, 
>the possibility of an incomplete transaction would arise, and an incomplete 
>transaction
>in the data dictionary could have appalling side effects."
> 
>Alessandro Lúcio Cordeiro da Silva 
>        Analista de Sistema
>þ http://alecordeirosilva.blogspot.com/
>O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: 
>estamos vivos.
>                                "Joana de Souza Schmitz Croxato"
> 
>
>
>
>________________________________
> De: Fabio Prado <fbifa...@gmail.com>
>Para: oracle_br@yahoogrupos.com.br 
>Enviadas: Terça-feira, 15 de Outubro de 2013 15:55
>Assunto: Re: [oracle_br] Bkp de objetos no banco
> 
>
>
>  
>Vivendo e aprendendo! 
>
>
>O procedimento que o Alessandro Lúcio passou funciona sim. Acabei de testar. 
>
>
>Como a gravação de objetos PL/SQL não é transacional (eles ficam gravados 
>diretamente no DD), conceitualmente achei que eles não geravam UNDO e que não 
>dava para usar FLASHBACK query ou version, pois essas tecnologias utilizam-se 
>de dados de UNDO. 
>
>
>Agradeço por ter aprendido isso!
>
>
>[]s
>
>
>
>
>
>
>
>
>
>Em 15 de outubro de 2013 15:57, Alessandro Lúcio Cordeiro da Silva 
><alecordeirosi...@yahoo.com.br> escreveu:
>
> 
>>  
>>Vitor,
>>
>>
>>   Existe uma VIEW que contem o código SQL, é a DBA_SOURCE, eu tentei 
>>executar um flashback nesta view e pra mim deu privilegios insuficiente, não 
>>sei se é somente o DBA dar acesso a flashback nesta view ou a ORACLE fecha 
>>acesso nela. mas se você fizer o select sem o flashback esta view tem o 
>>codigos das procedures, function entre outros objetos. Tenta ver de com DBA 
>>se o ele consegue com a conta do SYS.
>>
>>
>>select *
>>  from dba_source AS OF TIMESTAMP (SYSTIMESTAMP-INTERVAl '3' DAY) S
>> where s.owner = 'SYS'
>>   and s.name = 'OWA_UTIL'
>>   and s.TYPE = 'PACKAGE BODY'
>> order by line; 
>>
>>
>>OBS.: Agora não tenho nenhum banco de teste para verificar isso, somente os 
>>banco de producao que não tenho tantos privilegios.
>> 
>>Alessandro Lúcio Cordeiro da Silva 
>>        Analista de Sistema
>>þ http://alecordeirosilva.blogspot.com/
>> 
>>
>>
>>
>>
>>________________________________
>> De: Fabio Prado <fbifa...@gmail.com>
>>Para: oracle_br@yahoogrupos.com.br 
>>Enviadas: Terça-feira, 15 de Outubro de 2013 14:11
>>Assunto: Re: [oracle_br] Bkp de objetos no banco
>> 
>>
>>
>>  
>>Infelizmente não! 
>>
>>
>>
>>Em 15 de outubro de 2013 15:04, Victor Freidinger 
>><victor_freidin...@yahoo.com.br> escreveu:
>>
>> 
>>>  
>>>Olá Fábio,
>>>
>>>Obrigado pelo retorno.
>>>Realmente, não há o que fazer? Não há uma tabela v$ que eu consiga consultar 
>>>os códigos utilizados nos objetos?
>>>Tem a v$sql que eu consigo ver apenas selects, updates, etc., agora o código 
>>>dentro de um objeto eu não encontrei.
>>>
>>>Obrigado.
>>>
>>>
>>>
>>>
>>>
>>>
>>>________________________________
>>> De: Fabio Prado <fbifa...@gmail.com>
>>>Para: oracle_br@yahoogrupos.com.br 
>>>Enviadas: Terça-feira, 15 de Outubro de 2013 15:00
>>>Assunto: Re: [oracle_br] Bkp de objetos no banco
>>> 
>>>
>>>
>>>
>>>
>>>
>>>Victor, neste caso, só um backup do BD ou Flashback Database (se estiver 
>>>habilitado), poderá te ajudar. Vc vai ter que pedir ao DBA responsável pelo 
>>>BD, fazer a restauração para vc.
>>>
>>>
>>>Uma forma de evitar este tipo de problema no futuro e possibilitar uma 
>>>recuperação bem rápida do objeto, através de simples instruções SQL, é criar 
>>>o repositório de metadados que eu apresento no artigo: 
>>>http://www.fabioprado.net/2012/06/repositorio-de-metadados-no-oracle.html
>>>
>>>
>>>[]s
>>>
>>>
>>>Fábio Prado
>>>
>>>
>>>
>>>Em 15 de outubro de 2013 14:48, Victor Freidinger 
>>><victor_freidin...@yahoo.com.br> escreveu:
>>>
>>> 
>>>>  
>>>>Olá pessoal,
>>>>
>>>>
>>>>Estou com um problema desse nível:
>>>>
>>>>
>>>>Criei recentemente uma procedure em um ambiente de desenvolvimento e 
>>>>solicitei ao usuário testar todo o processo.
>>>>Depois de algum tempo, o usuário testou só que não me passou o retorno.
>>>>Acabou que caindo no esquecimento e a procedure que estava no banco foi 
>>>>perdida pela atualização do sistemas e eu não tinha um bkp desse objeto.
>>>>Na verdade já existia uma procedure com mesmo nome e eu apenas alterei 
>>>>algumas coisas para testar e, após os testes, iria pegar o objeto ou 
>>>>corrigir algum outro problema.
>>>>Quando foi atualizado a nova versão do sistema, apagou tudo.
>>>>Há como eu rever o objeto criado anteriormente?
>>>>Ou alguma forma de eu ver o create procedure feito anteriormente(que ai eu 
>>>>conseguiria ver todo o conteúdo e restaurar)?
>>>>
>>>>
>>>>Obrigado desde já.
>>>>
>>>
>>>
>>>
>>>-- 
>>>
>>>Fábio Prado
>>>www.fabioprado.net 
>>>"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados 
>>>Oracle"
>>> 
>>>
>>>
>>>
>>>
>>
>>
>>
>>-- 
>>
>>Fábio Prado
>>www.fabioprado.net 
>>"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados 
>>Oracle"
>> 
>>
>>
>
>
>
>-- 
>
>Fábio Prado
>www.fabioprado.net 
>"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados 
>Oracle"
> 
>
>


-- 

Fábio Prado
www.fabioprado.net 
"Compartilhando conhecimentos e treinando profissionais em Bancos de Dados 
Oracle"
 

Responder a