segunda-feira, 11 de julho de 2011

Oracle - Query que mostra o tamanhos das Tablespaces

Query que mostra a lista de tablespace, espaço utilizado, espaço livre, espaço total e percentual livre:


SELECT
   DF.TABLESPACE_NAME                                  "TABLESPACE",
   (DF.TOTALSPACE - FS.FREESPACE)              "USED MB",
   FS.FREESPACE                                                      "FREE MB",
   DF.TOTALSPACE                                                  "TOTAL MB",
   ROUND(100 * (FS.FREESPACE / DF.TOTALSPACE)) "PCT. FREE"
FROM
   (SELECT
      TABLESPACE_NAME,
      ROUND(SUM(BYTES) / 1048576) TOTALSPACE
   FROM DBA_DATA_FILES
   GROUP BY
      TABLESPACE_NAME
   ) DF,
   (SELECT
      TABLESPACE_NAME,
      ROUND(SUM(BYTES) / 1048576) FREESPACE
   FROM DBA_FREE_SPACE
   GROUP BY
      TABLESPACE_NAME
   ) FS
WHERE
   DF.TABLESPACE_NAME = FS.TABLESPACE_NAME(+)
   --AND DF.TABLESPACE_NAME = 'RUN_DATA'
   --AND FS.TABLESPACE_NAME = 'RUN_DATA'
;

Query cedida pelo amigo Cesar Toschi.

Oracle - Query que mostra quais são as maiores tabelas

Query que seleciona a lista das maiores tabelas. Pode-se filtrar por owner.


SELECT * FROM DBA_TABLES
WHERE TABLESPACE_NAME = 'RUN_DATA'
AND BLOCKS IS NOT NULL
ORDER BY BLOCKS DESC;

Oracle - Matar uma sessão

Para matar uma sessão no Oracle:


1) Select que mostra as sessoes do user NOME
select * from V$SESSION
where username = 'NOME';

2) Selecionar os campos SID e SERIAL# da sessão que deseja matar
SID = 208
SERIAL# = 26195

3) Executar o comando abaixo:
Alter system kill session '208,26195';

domingo, 8 de maio de 2011

SQLDeveloper - Keep Alive

SQLDeveloper - Keep Alive

Eu estava com problemas de conexão com a base do cliente. Quando eu ficava mais de 15 minutos sem executar uma query o firewall "matava" a conexao. Então descobri um plugin no Oracle SQLDeveloper que a cada "X" minutos faz um "ping" no banco de destino.
(1) Para isso basta baixar o arquivo do link abaixo:
https://sites.google.com/site/keepaliveext/oracle.sqldeveloper.keepalive.jar?attredirects=0

(2) Coloque o arquivo oracle.sqldeveloper.keepalive.jar na pasta ..\sqldeveloper-x.x.x.x.x\sqldeveloper\sqldeveloper\extensions

(3) Clique sobre a conexão salva no SQLDeveloper e configure o plugin, informando o tempo em minutos

(4) Após configurar clique em "Activate" e depois conecte no Banco de Dados

domingo, 10 de abril de 2011

Dica - Open Proj

Precisei planejar alguns projetos e não queria utilizar o M$ Project. Então busquei uma solução Open Source e encontrei o Serena OpenProj [http://openproj.org/openproj]. Já usei em dois projetos e até agora está correspondendo as expectativas. Muito bom mesmo.
Recomendo!!

terça-feira, 21 de dezembro de 2010

Para alterar o idioma do ODI versão 10

Editar o arquivo odi_params.bat que está em %ODI_JAVA_HOME%/bin e localizar a linha com ODI_ADDITIONAL_JAVA_OPTIONS. Então fazer o SET do idioma desejado como o exemplo abaixo:

Inglês:
set ODI_ADDITIONAL_JAVA_OPTIONS="-Duser.language=en" "-Duser.country=US"

Português Brasil:
set ODI_ADDITIONAL_JAVA_OPTIONS="-Duser.language=pt" "-Duser.country=BR"

Francês:
set ODI_ADDITIONAL_JAVA_OPTIONS="-Duser.language=fr" "-Duser.country=CA"

terça-feira, 5 de outubro de 2010

ODI - Carregar um arquivo texto sem identificador de linha, identificando a linha do fisica do arquivo.

Problema: tem-se um arquivo texto sem um identificador de linha e precisa carrega-lo identificando o nº da linha que ele está. Isso normalmente ocorre quando precisa-se carregar um arquivo com as linhas na ordem que estão.
Para resolver esse problema é preciso customizar um LKM. Nesse caso customizei o LKM File to Oracle (SQLLDR) que utiliza o SQLLoader do Oracle para carregar o arquivo. Abaixo os passos para customização do LKM:
1) Criei uma opção no KM para criar uma coluna sequencial na Work Table - C$ . Quando a opção está setada como Não, o KM tem o comportamento padrão.

2) Na opção 91 - Create work Table -  inseri o codigo abaixo

3) No passo 101 - Generate CTL file - inseri o cogido abaixo


4) Finalmente na interface mapeiei uma coluna com o campo criado na work table
É só executar que os dados são carregados para a tabela com um sequencial que representa a linha na qual o dado está no arquivo.