Oracle7 - Ajuda!

11 respostas
FabioMelo

Olá galera, estou com o seguinte problema: estou desenvolvendo um sistema em java com banco de dados em oracle7, nesse sistema tenho que guardar a fotografia de alguns usuários no banco, a unica alternativa que achei foi coloca-las num campo cujo tipo é Long Raw, pois nessa versão do oracle nao possui Blob, porem ao adicionar o registro ocorre o seguinte erro: “ORA-01461: can bind a LONG value only for insert into a LONG column”.
Eu consegui incluir o registro atraves do PL-SQL, mas quando tento pelo java sempre da esse erro, acho que é o drive jdbc , mas ja tentei trocar e nao funcionou.

Será que alguem já teve esse problema tambem. Qualquer ajuda será bem vinda.

PS: o drive jdbc que estou usando é “classes111.jar”.

11 Respostas

FabioMelo

Ninguem tem uma luz!!! :frowning:

danieldestro

Grava no FileSystem ao invés do BD.

FabioMelo

Como se faz um upload em java, pra uma maquina que esteja em outro dominio?

danieldestro

Se estiver usando Struts, ele tem suporte a isso.
Senão: http://jakarta.apache.org/commons/fileupload/

FabioMelo

Valeu Mais uma vez Daniel.

FabioMelo

A ultima coisa :slight_smile: , essa API funciona com uma aplicação swing?

danieldestro

Não sei, mas deve ter suporte sim.

S

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96525/e900.htm

no tahiti.oracle.com

ORA-01461 can bind a LONG value only for insert into a LONG column

Cause: An attempt was made to insert a value from a LONG datatype into another datatype. This is not allowed.

Action: Do not try to insert LONG datatypes into other types of columns.
FabioMelo

Sim caro steveo eu tb tinha visto isso, porém segundo a documentação do proprio Oracle7 o tipo Long Raw pode comportar ate 2GB e o erro está dando com qualquer arquivo que tenha mais de 4Kb.

S

desculpa Fabio,sem querer ser chato,mas já sendo.Ele não falou do tamanho do que vc está inserindo na tabela.Ele fala que vc está tentando inserir um tipo diferente do tipo da coluna.Qual a versão do 7 que vc está usando?
7.3.4 ? ele deu dor de cabeça pra mim quanto a isso tb,mas foi em passagem de parametros

FabioMelo

Oi steveo valeu pelo toque, nao foi chato nao :), a versão do Oracle que estou usando é Oracle7 Server Release 7.3.2.3.0, na relidade eu estou colocando num array de bytes, uma imagem obtida por uma web cam e inserindo num campo Long Raw, como demostrado abaixo:

BufferedImage image = new BufferedImage(70, 50, BufferedImage.TYPE_INT_RGB);

ByteArrayOutputStream stream = new ByteArrayOutputStream();                image.createGraphics().drawImage(foto.getScaledInstance(70,50,1),0,0,this);

ImageIO.write(image, jpeg, stream);

Bytes bytes = new Bytes(stream.toByteArray());
//Salvando a Imagem

comensal.setFoto(bytes);

Scr.comensaldao.update(comensal);
Criado 24 de janeiro de 2005
Ultima resposta 25 de jan. de 2005
Respostas 11
Participantes 3