Problem inserting records into Oracle

Asked

Viewed 858 times

2

I’m having trouble entering records in Oracle, below follows the insert that I use:

insert into COMPRAS (id, valor, data, observacoes, recebido)
values (id_seq.nextval, 200, '19-FEB-2008', 'MATERIAL ESCOLAR', '1');

However it generated this SQL error;

 Erro ao iniciar na linha 1 no comando  
    insert into COMPRAS (id, valor, data, observacoes, recebido)  
    values (id_seq.nextval, 200, '19-FEB-2008', 'MATERIAL ESCOLAR', '1')  
    Relatório de erro:  
    Erro de SQL: ORA-01858: foi localizado um caractere não numérico onde se esperava um numérico  
    01858. 00000 -  "a non-numeric character was found where a numeric was expected"  
    *Cause:    The input data to be converted using a date format model was  
               incorrect.  The input data did not contain a number where            
               anumber was required by the format model.    
    *Action:   Fix the input data or the date format model to make sure the  
               elements match in number and type.  Then retry the operation.

My table looks like this:

COMPRAS

Nome        Nulo     Tipo         
----------- -------- ------------ 
ID          NOT NULL NUMBER       
VALOR                NUMBER       
DATA                 DATE         
OBSERVACOES          VARCHAR2(30) 
RECEBIDO             CHAR(1)      

This is how the table was created:

create table compras (
    id number primary key,
    valor number, 
    data date, 
    observacao varchar2(30),
    recebido char check (recebido in(0,1)));

    CREATE SEQUENCE ID_SEQ;

How do I fix it?

  • Have you tried using the function TO_DATE()? TO_DATE('19-Feb-2008', 'DD-Mon-YYYY')

1 answer

1

You’re trying to insert a VARCHAR in a field DATE convert to date using TO_DATE as the comment of Eduardo Almeida

TO_DATE('19-Feb-2008', 'DD-Mon-YYYY')

Browser other questions tagged

You are not signed in. Login or sign up in order to post.