Preciso de uma força
Galera, seguinte, eu tenho essa tabela e não estou conseguindo fazer o insert, diz que o valor é maior que a precisão especificada.
Alguém pode me ajudar?
Create Table TB_Veiculos
(
ID_Placa Varchar2(8),
DS_Renavam Varchar2(13) Constraint Vei_Renavam_nn Not Null,
DS_Marca Varchar2(40) Constraint Vei_Marca_nn Not Null,
DS_Modelo Varchar2(40) Constraint Vei_Modelo_nn Not Null,
ID_Combustivel Number(2) Constraint Vei_Combustivel_nn Not Null,
DS_Ano_Fabric Number(4) Constraint Vei_Ano_Fabr_nn Not Null,
DS_Ano_Modelo Number(4) Constraint Vei_Ano_Modelo_nn Not Null,
DS_Cor Varchar2(40) Constraint Vei_Cor_nn Not Null,
Constraint Veiculos_pk Primary Key (ID_Placa),
Constraint Vei_Comb_fk Foreign Key (ID_Combustivel) References TB_Combustivel(ID_Combustivel)
);
INSERT INTO TB_VEICULOS
VALUES('AAA-AAAA', '0000000000001', 'MERCEDES', 'AMG', 2015, 2015, 'VERMELHO',02);
*Obs, ele aponta que o erro está nos anos "2015"....
Alguém pode me ajudar?
Create Table TB_Veiculos
(
ID_Placa Varchar2(8),
DS_Renavam Varchar2(13) Constraint Vei_Renavam_nn Not Null,
DS_Marca Varchar2(40) Constraint Vei_Marca_nn Not Null,
DS_Modelo Varchar2(40) Constraint Vei_Modelo_nn Not Null,
ID_Combustivel Number(2) Constraint Vei_Combustivel_nn Not Null,
DS_Ano_Fabric Number(4) Constraint Vei_Ano_Fabr_nn Not Null,
DS_Ano_Modelo Number(4) Constraint Vei_Ano_Modelo_nn Not Null,
DS_Cor Varchar2(40) Constraint Vei_Cor_nn Not Null,
Constraint Veiculos_pk Primary Key (ID_Placa),
Constraint Vei_Comb_fk Foreign Key (ID_Combustivel) References TB_Combustivel(ID_Combustivel)
);
INSERT INTO TB_VEICULOS
VALUES('AAA-AAAA', '0000000000001', 'MERCEDES', 'AMG', 2015, 2015, 'VERMELHO',02);
*Obs, ele aponta que o erro está nos anos "2015"....
Julio Cesar
Curtidas 0
Melhor post
Emerson Nascimento
05/12/2018
Quando você não indica quais campo está manipulando, o insert segue a ordem de criação dos campos, logo:
estará atribuindo:Então aparentemente as atribuições estão erradas a partir do campo ID_Combustivel que comporta numeros de até 2 dígitos, mas você está passando 4 dígitos.
Para evitar problemas quanto à ordem dos campos, informe-os explicitamente no insert. Assim:
Desta forma o resultado será:
INSERT INTO TB_VEICULOS VALUES('AAA-AAAA', '0000000000001', 'MERCEDES', 'AMG', 2015, 2015, 'VERMELHO',02);
ID_Placa Varchar(8) = 'AAA-AAAA' DS_Renavam Varchar(13) = '0000000000001' DS_Marca Varchar(40) = 'MERCEDES' DS_Modelo Varchar(40) = 'AMG' ID_Combustivel Number(2) = 2015 DS_Ano_Fabric Number(4) = 2015 DS_Ano_Modelo Number(4) = 'VERMELHO' DS_Cor Varchar(40) = 2
Para evitar problemas quanto à ordem dos campos, informe-os explicitamente no insert. Assim:
INSERT INTO TB_VEICULOS(ID_Placa, DS_Renavam, DS_Marca, DS_Modelo, DS_Ano_Fabric, DS_Ano_Modelo, DS_Cor, ID_Combustivel) VALUES('AAA-AAAA', '0000000000001', 'MERCEDES', 'AMG', 2015, 2015, 'VERMELHO',2);
ID_Placa Varchar(8) = 'AAA-AAAA' DS_Renavam Varchar(13) = '0000000000001' DS_Marca Varchar(40) = 'MERCEDES' DS_Modelo Varchar(40) = 'AMG' DS_Ano_Fabric Number(4) = 2015 DS_Ano_Modelo Number(4) = 2015 DS_Cor Varchar(40) = 'VERMELHO' ID_Combustivel Number(2) = 2
GOSTEI 3
Mais Respostas
Fernando Wahl
05/12/2018
E ai Julio, pode ser duas coisas, ja acontece isso comigo:
1º - Sei que está usando tipo Number, mas mesmo assim, coloque no VALUES entre aspas "2015", creio que dessa forma de certo;
2º - Se vc aumentar o Number para 5, por ex:
--> DS_Ano_Fabric Number(5) Constraint Vei_Ano_Fabr_nn Not Null,
--> DS_Ano_Modelo Number(5) Constraint Vei_Ano_Modelo_nn Not Null,
e passar somente 4 números pode ser que de certo;
Ja passei por esses dois tipo s de problemas e os dois resolveram.
Outra coisa, se estiver usando o SQL server, da uma olhada como ele faz no quesito automático pelo próprio banco, geralmente o SQL Server mostra o código do Insert, dessa forma vc pode ver como que o próprio SQl Server está passando o comando.
Abraços até.
1º - Sei que está usando tipo Number, mas mesmo assim, coloque no VALUES entre aspas "2015", creio que dessa forma de certo;
2º - Se vc aumentar o Number para 5, por ex:
--> DS_Ano_Fabric Number(5) Constraint Vei_Ano_Fabr_nn Not Null,
--> DS_Ano_Modelo Number(5) Constraint Vei_Ano_Modelo_nn Not Null,
e passar somente 4 números pode ser que de certo;
Ja passei por esses dois tipo s de problemas e os dois resolveram.
Outra coisa, se estiver usando o SQL server, da uma olhada como ele faz no quesito automático pelo próprio banco, geralmente o SQL Server mostra o código do Insert, dessa forma vc pode ver como que o próprio SQl Server está passando o comando.
Abraços até.
GOSTEI 0
Julio Cesar
05/12/2018
Emerson, muuuuuuuuito obrigado.
Que baita falta de atenção da minha parte. É isso mesmo, da próxima vez que precisar inserir dados eu vou me atentar mais.
Que baita falta de atenção da minha parte. É isso mesmo, da próxima vez que precisar inserir dados eu vou me atentar mais.
GOSTEI 0