Migração entre bancos

7 respostas
W

Opa

To migrando dados de um oracle pra um postgres, mas me deparei com uma tabela que possui um campo do tipo imageraw… e não sei qual seria o campo mais adequado para eu usar em uma tabela postgres, já que não tenho esse formato disponível.

Consigo fazer a migração legal de todos os quase 13000 registros, só que em dois deles, ocorre problema… de memória, segundo o java, mas este só ocorre no momento no insert para o postgres, ou seja, é algum problema na hora de inserir…

sei lá…

se alguém puder dar uma luz…

:smiley:

valeu!

7 Respostas

maquiavelbona

É uma imagem como arquivo puro? Procure ver se BLOB não substitue.

Até!

W

Cara… te confesso que no pgAdmin 1.6.1, não encontrei esse tipo de campo como opção… encontrei outros milhares, mas este não… estarei eu ficando louco? hehehehe…

valeu…

Minha busca persiste…

Dieval_Guizelini

Você precisa fazer uma análise do tamanho das imagens antes de tomar essa decisão.

existem duas arquiteturas no PostgreSQL que você pode usar, são elas:

bytea - arquivos e objetos binários com até 1Gb aproximadamente.

ou use a api large_objects que permite tamanhos maiores…

http://jamesthornton.com/postgres/7.4/jdbc-binary-data.html

fw

maquiavelbona

Desculpe, o nome no PgSQL é bytea.

Até!

W

Ah… agora funcionou… é o bytea mesmo…

valeu pessoal…

:lol:

W

Opa… vou aproveitar o mesmo tópico, pra não ficar abrindo outros com assuntos iguais.

Eu tenho uma informação dentro do meu oracle que possui um tamanho mto grande, e não consigo fazer a migração dela para o postgres…

Quando eu faço a migração, isso ocorre com dois registros…

Nestes registros acontece o seguinte erro:

<blockquote>Exception in thread “main” java.lang.OutOfMemoryError: Java heap space

at java.util.Arrays.copyOf(Arrays.java:2882)

at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)

at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)

at java.lang.StringBuilder.append(StringBuilder.java:119)

at InserePostgres.insereQuantidade(InserePostgres.java:32)

at ConexaoOracle.main(ConexaoOracle.java:62)</blockquote>

Até onde eu sei, isso é quando estoura o limite de memória do java.

Eu acredito que este problema ocorra devido ao tamanho do meu registro… talvez exceda a capacidade do tipo String… não sei…

Se for isso, que outro tipo de dado posso utilizar?

Valeu pessoal.

Dieval_Guizelini

Que tipo de dados você tem no Oracle para ele estar tentando passar para String?

Tente ver se não é possível utilizar Streans no lugar, que é mais recomendável para campos do tipo BLOB, CLOB, BIGTEXT etc.

ou tente aumentar a memória disponível da VM para sua aplicação, veja os parâmetros -Xms192m -Xmx512m.

até

Dieval

Criado 18 de outubro de 2007
Ultima resposta 19 de out. de 2007
Respostas 7
Participantes 3