Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcoridolphi

INSERT com campo LONG da erro

Recommended Posts

Boa tarde,

Estou tentando da insert so que um dos campos é do tipo LONG e por isso da sempre o mesmo erro.

ja tentei converter para LOB/CLOB e quando faço isso ele executa o INSERT mas no capo que era LONG fica vazio.

 

O INSERT é esse:

INSERT INTO PPARAMRELAT
SELECT P_CODCOLIGADA AS CODCOLIGADA,
TIPORELAT,
IDRELAT,
NOME,
PARAMETROS ,
RECCREATEDBY,
RECCREATEDON,
RECMODIFIEDBY,
RECMODIFIEDON
FROM PPARAMRELAT
WHERE TIPORELAT = 1
AND CODCOLIGADA = 239;
O erro é esse:
Error: PL/SQL: ORA-00932: inconsistent datatypes: expected NUMBER got LONG
Line: 11
Text: PARAMETROS

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja a ordem e tipos da tabela e compare com a do select.

 

A tabela espera NUMBER em alguma coluna e está recebendo LONG.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O select é na mesma tabela do insert, o problema deve ser a ordem dos campos insert x select

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Select é na mesma tabela do INSERT, o problema não pode ser tipo (exceto o P_CODCOLIGADA AS CODCOLIGADA), logo o problema deve ser ordem selct x ordem da tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim

 

Declare

Vn_campo1 number;

Vl_campo2 blob;

...

 

 

Begin

 

For r in ( Select ....)

Loop

Vn_campo1 := r.campo1;

...

Insert into tabela (campo1,...)

Values (vn_campo1,...);

End loop;

End;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.