Oracle – Dica Rápida: Pesquisar texto no corpo dos objetos function, trigger, procedure e packages

Dicas simples para pesquisar nos objetos do banco por um texto específico. Esta rotina pesquisa em objetos do tipo FUNCTION, TRIGGER, PROCEDURE E PACKAGES. Para proceder com a pesquisa substitua os campos TEXTO_PROCURADOe SEU_SCHEMA

SELECT OWNER||'.'||NAME,LINE,TEXT
  FROM ALL_SOURCE
 WHERE TYPE IN ('TRIGGER','FUNCTION','PACKAGE BODY','PROCEDURE')
   AND UPPER(TEXT) LIKE UPPER('%TEXTO_PROCURADO%') 
   AND OWNER IN ('SEU_SCHEMA')

Caso deseje, você poderá transformar esta query em uma procedure que imprime os resultados em tela (para chamadas rápidas):

CREATE OR REPLACE PROCEDURE pesquisa_texto(P_TEXTO IN VARCHAR2) is

BEGIN

 FOR R IN (
 SELECT OWNER||'.'||NAME LOCALIZ,LINE,TEXT
  FROM ALL_SOURCE
 WHERE TYPE IN ('TRIGGER','FUNCTION','PACKAGE BODY','PROCEDURE')
   AND UPPER(TEXT) LIKE UPPER('%'||P_TEXTO||'%') -- TEXTO PROCURADO
   AND OWNER IN ('SEU_SCHEMA')
 ) LOOP
        Dbms_Output.Put_Line('LOCAL: '||R.LOCALIZ||' - '||'LINE: '||R.LINE||' - TEXT: '||R.TEXT);
 END LOOP;

END;
/

Como resolver ORA-14450: attempt to access a transactional temp table already in use Tabela temporária Oracle

Um erro que pode incomodar bastante durante a atualização de uma tabela temporária é o :

ORA-14450: attempt to access a transactional temp table already in use

A mensagem apesar de clara pode ser difícil de tratar caso você não consiga identificar e/ou derrubar todas as sessões conectadas. Dessa forma, caso deseje “forçar” a alteração de uma tabela desse tipo, siga os seguintes passos:

  1. Execute o comando
    lock table <SCHEMA>.<TABELA_TEMPORARIA> in exclusive mode;
  2. Desconecte da sessão e conecte novamente no Banco (Ex: utilizando Sql Tools ou PLSQL Developer)
  3. Após conectado execute a seguinte Query:
    SELECT * FROM v$lock WHERE id1 = (SELECT object_id FROM all_objects WHERE owner =<SCHEMA> AND object_name =<TABELA_TEMPORARIA>);
    
  4. Ao identificar uma linha nesse select, vamos proceder “matando” a sessão:
    ALTER SYSTEM KILL SESSION '<sid>,<serial#>';
  5. Depois de executado o comando KILL e confirmado sua execução com sucesso, você poderá executar o comando DDL desejado:
    ALTER TABLE <SCHEMA>.<TABELA_TEMPORARIA> MODIFY(COLUNA NUMBER (20,0));
  6. Por fim, libere o lock realizado no passo1 através do comando:
    rollback;

E só 😉



Conexão JDBC para Oracle RAC (Cluster)

Um cluster consiste em multiplos computadores interconectados ou servidores que têm como objetivo compartilhar/ processar requisições de usuários em aplicações para usuários finais. O Oracle RAC permite que um Database seja clusterizado e ele utiliza o Oracle Clusterware como infraestrutura para processar várias instances como um sistema único.

O ORACLE RAC (real application cluster) é uma solução de banco de dados em cluster que requer dois ou mais nós de hardware capazes de trabalhar juntos sob o controle de um sistema operacional. Se você precisa conectar uma aplicação java via JDBC a um banco Oracle RAC o formato clássico de String de conexão  não vai funcionar.

 jdbc:oracle:thin:@<HOST>:1521:<SID>

A string que deve ser utilizada para uma conexão Oracle RAC é

DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ENDERECO_HOST1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=ENDERECO_HOST2)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=NOME_DO_SERVICE_NAME)(FAILOVER_MODE=(TYPE=select)(METHOD=basic)))

Para descobrir o NOME_DO_SERVICE_NAME , procure pelo arquivo tsnames.ora (geralmente localizado em C:\orant\NETWORK\ADMIN – Plataforma Windows)

Cada “Address” do Address_List representa um servidor de conexão, fique atento aos IP’s de cada Host!

 


Dica rápida: problema ao remover programas do Windows 7

Hoje passei por um problema chato. Ao tentar remover algumas versões do Java, o desinstalador do Windows estava sem embananando… e solicitando  pacotes .msi para continuar com a desinstalação… .Após algumas pesquisas, acabei encontrando um programinha da Microsoft chamado Fix It.

O Fix It diagnostica de forma automática problemas que podem impedir a instalação ou a desinstalação de programas no computador. Ele Ajuda no caso de programas que não são instalados corretamente e programas que impedem novas instalações de programas. 

Conforme orientação da Microsoft o programa corrige…
  • Remove uma chave de registro defeituosa em sistemas operacionais de 64 bits.
  • As chaves de registro do Windows que controlam os dados de atualização (patch) ficam corrompidas.
  • Resolve problemas que impedem a instalação de programas novos.
  • Resolve problemas que impedem a desinstalação completa de programas e bloqueiam novas instalações e atualizações.
  • Use esse solucionador de problemas em uma desinstalação somente se o programa não for desinstalado usando o recurso Adicionar ou Remover Programas do Windows.

microsoft-fixit

Download do Fixt It

ou através do link: http://support.microsoft.com/mats/Program_Install_and_Uninstall


Páginas:1234567...17