Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Dúvida no Ex. 6 da Aula 1 - Consultando os dados

Boa noite! Quando tento popular a tabela compras aparece o seguinte erro:

insert into COMPRAS (id, valor, data, observacoes, recebido) values (id_seq.nextval, 3500, '21-MAY-2008', 'TELEVISAO', '0') * ERRO na linha 1: ORA-01858: foi localizado um caractere nÒo numÚrico onde se esperava um numÚrico

Estou utilizando o:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

8 respostas

Acredito que é exatamente o que esta sendo mostrado na mensagem de erro, você utilizou um caractere não numérico em um campo que espera que seja um numero, meu palpite é no ultimo, use 0 sem as aspas, ou verifique o tipo de cada campo.

Na verdade esse erro está ocorrendo na data. Estou tentando modelar a tabela através do arquivo que baixei do exercício, mas não está dando certo.

insert into COMPRAS (id, valor, data, observacoes, recebido) values (id_seq.nextval, 87.43, '10-MAY-2011', 'GRAVATA', '0')
                                                                                            *
ERRO na linha 1:
ORA-01858: foi localizado um caractere nÒo numÚrico onde se esperava um
numÚrico

No vídeo dar certo, mas no meu pc não. Estou usando o Windows.

Boa noite Welber, você pode testar o formato 'DDMMAAAA'? Exemplo, ao invés de '10-MAY-2011', usar '10052011'. Estou verificando o porquê desse problema estar ocorrendo. E mais uma pergunta, qual versão do Windows você está utilizando?

Tente '10-05-2011' ou '2011-05-10', pode ser que esteja usando um padrão diferente na sua maquina.

Boa noite, Rômulo e Douglas!

No formato '10052011' e '10-05-2011' dão certo.

Apenas no formato anterior que não.

Eu utilizo o Windows 10 64x.

solução!

Boa tarde Welber, verifiquei aqui e realmente o problema é o padrão da data. Acontece que no Linux, o Oracle é instalado no padrão americano, pode-se conferir através desse comando:

show parameter nls_lang;

Mas se rodar esse mesmo comando no Windows, é verificado que o Oracle é instalado no padrão brasileiro, então ele não aceitará o mês em inglês. Por isso ele deu erro nesse INSERT, pois o correto seria '10-MAI-2011', ao invés de '10-MAY-2011'. Eu disponibilizei no exercício um novo arquivo .sql para o padrão brasileiro, peço que você o baixe e tente importá-lo. Qualquer dúvida é só comentar aqui.

Entendido. Deu certo. Obrigado.

eu estou usando windows e aparecia a msg: 'ORA-01858: foi localizado um caractere nÒo numÚrico onde se esperava um numÚrico'

dai resolvir mudar a data para '12-05-2007' e funcionou

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software