Problema na gravação com decimal

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 17 Jun 2009 9:40 am

Bom dia galera, estou começando agora a mexer com o oracle e estou com uma dificuldade.

Estou tentando gravar uma coluna(VL_UNITARIO) no qual o tipo é number(12,6)

o código é o seguinte:

insert into MOV_ITEM_PREVENDA ( CD_EMPRESA, CD_FILIAL, NR_PREVENDA, CD_ITEM, CD_TIPO_NOTA, PC_DESCONTO, QT_ITEM, VL_UNITARIO, NR_SEQUENCIA, CD_TABELA_PRECO, CD_CAMPANHA) values
(1,
101,
43,
2,
6112,
0,
1,
to_number(9.7),
2,
1,
6)

No pl/sql roda perfeitamente, mais quando eu executo pela aplicação ocorre um erro
ORA-01036: número inválido

Não consigo identificar o erro... :D :roll: :idea:
magrao_sgc
Localização: Joinville - SC - BRAZIL

Mensagemem Qua, 17 Jun 2009 9:46 am

PS.: O ERRO QUE OCORRE É O ORA-01722: número inválido
magrao_sgc
Localização: Joinville - SC - BRAZIL

Mensagemem Qua, 17 Jun 2009 9:50 am

Isso é erro na formatação numérica do seu Forms.

Você insere isso via script em alguma procedure ou é um campo da tela?
Existem algumas maneiras de resolver isso, a definitiva, é você ver qual formato numérico está configurado no regedit CHAVE NLS_LANGUAGE

Se for via script, tente usar os códigos abaixo.

Código: Selecionar todos
to_char(1210.73, '9999.9')   would return '1210.7'
to_char(1210.73, '9,999.99')   would return '1,210.73'
to_char(1210.73, '$9,999.00')   would return '$1,210.73'
to_char(21, '000099')   would return '000021'


se for via tela, olhe esse post.

http://glufke.net/oracle/viewtopic.php?t=337
RodrigoValentim
Localização: Salvador - BA

Rodrigo Valentim
Analista de Sistemas
Oracle Developer

Campanha: Faça uma pesquisa antes de perguntar!!!

Mensagemem Qua, 17 Jun 2009 11:07 am

Obrigado Rodrigo, mais indo mais afundo no problema o cavalo aqui que estava errado, erro na hora de converter mesmo...

Mais mesmo assim mais uma vez obrigadooo
magrao_sgc
Localização: Joinville - SC - BRAZIL

Mensagemem Ter, 23 Jun 2009 1:39 pm

Você pode pegar o SELECT USERENV('LANG') INTO V_LANG FROM DUAL;
para saber o language no momento e colocar sua formatação corretamente.
alexrsilva
Localização: Rio de Janeiro - RJ


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


    Voltar para PL/SQL

    Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes