quarta-feira, 7 de outubro de 2009

Funções de Arredondamento no MySQl

Uma dica rápida sobre o MySQl, se você necessita de valores arredondados para alguma aplicação, use uma das funções nativas do MySQL:

CEILING
Arredonda para cima, exemplo:
SELECT CEILING(4.5);

Resultado: 5
SELECT CEILING(-3.29);

Resultado: -3

FLOOR
Arredonda para baixo, exemplo:
SELECT FLOOR(1.5) ;
Resultado: 1
SELECT FLOOR(-2.37);
Resultado: -3

ROUND
Arredonda para o proximo número inteiro (note que valores decimais abaixo de 5 são arredondados para baixo e acima de 5 para cima, e que a função aceita um segundo valor definindo o número de casas decimais do resultado), exemplo:
SELECT ROUND(-1.23);
Resultado: -1
SELECT ROUND(-1.58);
Resultado: -2
SELECT ROUND(1.298, 1);
Resultado: 1.3
SELECT ROUND(1.298, 0);
Resultado: 1
SELECT ROUND(23.298, -1);
Resultado: 20

TRUNCATE
Elimina as casas decimais (também aceita um segundo valor definindo o número de casas decimais do resultado), exemplo:
SELECT TRUNCATE(1.223,1);

Resultado: 1.2
SELECT TRUNCATE(1.999,1);
Resultado: 1.9
SELECT TRUNCATE(122,-2);
Resultado: 100
SELECT TRUNCATE(10.28*100,0);
Resultado: 1028

segunda-feira, 5 de outubro de 2009

Control Files do Oracle

Os Control Files são arquivos binários extensão ctl que guardam informações sobre o banco de dados, por sua vez estas informações mantém a integridade do banco de dados. Este arquivo de controle é validado na inicialização do banco, durante a passagem do estado DATABASE NOMOUNT para MOUNT e cada instância do banco de dados tem o seu Control File.

Para verificar o status e a localização dos Control Files você pode consultar as seguintes views:
V$CONTROLFILE: Lista o nome e o status de todos os Control Files associados à instância.
V$PARAMETER: Lista o status e a localização de todos os parâmetros.
V$CONTROLFILE_RECORD_SECTION: Contém as informações sobre as seções de registro dos Control Files.
SHOW PARAMETER CONTROL_FILES: Lista o nome, o status e a localização dos Control Files.

O Control File contém as seguintes informações:
  • O nome e o identificador (SID) do banco de dados.
  • O timestamp de criação do banco de dados.
  • Os nomes das tablespaces.
  • Os nomes e as localizações dos arquivos de dados e de redo log on-line.
  • O número de seqüência do arquivo de redo log on-line atual.
  • As informações sobre checkpoints.
  • O início e o fim dos segmentos de undo.
  • As informações de arquivamento de redo log.
  • As informações de backup.
Como você pode ver ele contém dados importantíssimos para o funcionamento do banco, a sua perda pode implicar na recuperação de todo o banco. Uma das estratégias para se precaver disso é multiplexar o Control File.

Multiplexação do Control File

A multiplexação consiste em fazer várias cópias do Control File em locais diferentes, exemplo se você tem dois discos u01 e u02, você pode criar cópias nos dois através dos arquivos de parâmetros, com a seguinte sequência de comandos:

Através do SPFILE
1. Altere o SPFILE:
ALTER SYSTEM SET control_files =
'$HOME/ORADATA/u01/ctrl01.ctl',
'$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;

2. Desative o banco de dados:
shutdown immediate
3. Crie os Control Files adicionais:
cp $HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl

4. Inicie o banco de dados:
startup

Através do PFILE
1. Desative o banco de dados:
shutdown immediate
2. Crie arquivos de controle adicionais:
cp $HOME/ORADATA/u01/ctrl01.ctl
$HOME/ORADATA/u02/ctrl02.ctl

3. Adicione os nomes dos arquivos de controle a PFILE:
CONTROL_FILES = $HOME/ORADATA/u01/ctrl01.ctl,
$HOME/ORADATA/u02/ctrl02.ctl)

4. Inicie o banco de dados:
Startup
Com varias copias do Control File, no caso de uma falha em um deles você pode usar a cópia para recupera-lo.

Backup do Control File
Para fazer o backup normal do Control File, use o comando ALTER DATABASE BACKUP CONTROLFILE, exemplo:
ALTER DATABASE
BACKUP CONTROLFILE TO '/oracle/backup/ctrl01.bkp';


Na próxima postagem falaremos sobre os arquivos de parâmetros SPFILE e PFILE.

quinta-feira, 1 de outubro de 2009

Conheça o Oracle SQL Developer

O Oracle SQL Developer é uma ferramenta gratuita para desenvolvimento em banco de dados, já esta na versão 1.5.5 e embora tenha recursos poderosos infelizmente é um aplicativo que é muito pouco divulgado pela própria Oracle. Com ele você pode procurar objetos do banco, executar comandos e scripts SQL e editar e depurar código PL/SQL. Além disso, como ele foi desenvolvido em Java, roda em Windows, Linux e Mac OSX e os usuários podem criar conexões de banco de dados para outros bancos como MySQL, SQL Server, Access e Sybase. Vamos dar uma rápida descrição das suas principais funcionalidades:

Estrutura Object Browser
Oferece suporte a visualização, criação, alteração e exclusão de todos os tipos de objetos do banco: tabelas, views, índices, pacotes, procedimentos, funções, triggers, seqüências, materialized views, logs, sinônimos (públicos e privados), database links, esquemas XML, Java. Cada tipo de objeto têm uma guia de exibição de detalhes própria e um filtro que pode ser aplicado para restringir a exibição, incorpora também uma lixeira para os objetos excluídos.




Query Builder
Possibilita criar rapidamente consultas SQL arrastando e soltando os objetos.

Schema Copy and Compare
Permite copiar o conteúdo de um esquema para outro e também compara e cria SQL baseado na diferença entre dois esquemas.

Edição de PL / SQL
Possui um editor PL/SQL muito avançado com as seguintes funções:
Formatação de código
Syntax Highlighting
Auto completa código
Inline Error Reporting
Code Bookmarking
Teclas de atalho customizaveis
Suporte a arquivos .pks, .pkb e .pls

Suporte a pacotes
Debugger avançado

Criação de relatórios
Cria os seguintes tipos de relatórios:
Dicionário de dados
Monitoramento
Segurança
Os relatórios tem suporte a gráficos e HTML e a maioria dos relatórios apresentados incluem o recurso click-through, se um usuário clica em uma linha resultante, a definição daquele objeto é exibida.





Suporte a migrações de outros bancos de dados
Conecta com MySQL, SQL Server, Access e Sybase, permite visualizar e converter o modelo do banco para o modelo Oracle, gera script DDL e migra dados, stored procedures, triggers e views.

Para fazer o download desta excelente ferramenta clique no link:
http://www.oracle.com/technology/software/products/sql/index.html