[firebase-br] Migrando Firebird 1.5 para Oracle

Sandro Souza escovadordebits em gmail.com
Ter Jun 14 17:02:56 -03 2011


Bom dia/tarde Maciel.

Nobre amigo, quase todos os recursos que o Firebird tem, o Oracle também
tem, mas a sintaxe das stored procedures, e consequentemente das triggers, é
diferente da sintaxe implementada no Firebird, ou seja, tem que ser "na mão"
mesmo.

Com relação às tabelas, você só precisa encontrar o tipo mais adequado para
os tipos que você já usa no Firebird.

Vale lembrar também um pequeno detalhe que pode fazer uma imensa diferença:
No Firebird, quando criamos uma base de dados no dialeto 3, os campos do
tipo NUMERIC e DECIMAL são armazenados internamente como inteiros, e todas
as operações matemáticas envolvendo eles tem a máxima precisão numérica,
além de serem transparentes para nós.

Dessa forma, obtemos uma excelente precisão numérica com o nosso Firebird de
cada dia, mas infelizmente isso não existe no Oracle.

No M$$$ SQL Server temos o tipo Money (ou tinhamos), que equivaleria ao tipo
Currency do Delphi, ou seja, perfeito para guardar valores monetários.

No Oracle, se você usar os tipos NUMERIC ou DECIMAL, vai ser o mesmo que o
DOUBLE PRECISION do Firebird, ou seja, será uma aproximação do valor, o que
não dá a mesma precisão numérica de um Double do Delphi, onde 1 fica
armazenado como 0.999999999999999.

Pelo menos foi o que pude comprovar a algum tempo atrás.

Ah sim, outro "pequeno detalhe" que pode fazer também muita diferença: Não
existe a opção "ON UPDATE CASCADE" nas chaves estrangeiras do Oracle. 8(

Pasmem! Não existe mesmo. O que geralmente se faz é uma senhora RTA (recurso
técnico alternativo, vulga gambiarra feia), que é desabilitar
temporariamente as chaves estrangeiras em alguma trigger (BEFORE blá blá
blá), efetuar a troca do valor e reabilitar as chaves estrangeiras logo após
isso, em outra trigger (AFTER blá blá blá).

Se por acaso ocorrer alguma operação, nesse exato momento, que utilize o
valor anterior, aí nem sei dizer, porque nunca fiz esse teste "Murphyano".

Sei que a grande maioria das pessoas tem aquela velha idéia de que "se é
caro....é bom", mas nesse caso, assim como em outros, essa regra não se
aplica.

Espero ter ajudado mais que atrapalhado. :D

Em 14 de junho de 2011 16:44, Maciel Soncini Bueno <
maciel em 2msolutions.com.br> escreveu:

> Saudações,
>
> Não sei se este caso deve ser tratado como off-topic. Se sim, peço
> desculpas.
>
> Nossos são em Firebird. Tenho sistemas migrados para a versão 2.5 com
> relativo sucesso.
>
> Tenho um cliente que faz questão o banco seja em Oracle, vez que todas as
> suas soluções já o são.
>
> Pergunta: Alguém já teve que migrar um banco Firebird para Oracle?
>
> Se sim, como procedeu?
>
> Não tenho necessidade de migrar os dados, vez que o banco começará
> praticamente vazio.
>
> É possível migrar as tabelas? Pelo que pesquisei sim.
>
> No tocante as triggers e stroed procedures já conseguiram migrar ou teve
> que
> ser no "braço"?
>
> Maciel
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista