SQL> show error procedure teste Errors for PROCEDURE TESTE: LINE/COL ERROR -------- ----------------------------------------------------------------- 60/12 PL/SQL: SQL Statement ignored 60/24 PL/SQL: ORA-00947: not enough values 97/12 PL/SQL: SQL Statement ignored 97/24 PL/SQL: ORA-00947: not enough values
Maravilha, identificamos que o erro é “PL/SQL: ORA-00947: not enough values” mas o que isto quer dizer?
Significa que “Não há valores suficientes”, ou seja, no INSERT está sendo passado uma quantidade inferior de valores do que é necessário ou foi especificado na instrução DML.
Vejamos:
SQL> insert into academico (codigo, nome, telefone) values (1,'ANDERSON'); insert into academico (codigo, nome, telefone) values (1,'ANDERSON') * ERROR at line 1: ORA-00947: not enough values
Neste exemplo podemos verificar que foi especificado 3 colunas porém apenas 2 valores foram passados no values, o mesmo erro também ocorre com instruções INSERT SELECT conforme abaixo:
SQL> insert into academico (codigo, nome, telefone) select codigo, nome from academico_tmp; insert into academico (codigo, nome, telefone) select codigo, nome from academico_tmp * ERROR at line 1: ORA-00947: not enough values
Para resolvermos este ERRO basta especificarmos a quantidade correta de valores ou eliminar a coluna desnecessária.
SQL> insert into academico (codigo, nome, telefone) values (1,'ANDERSON',99811456); 1 row created.
Ou
SQL> insert into academico (codigo, nome) select codigo, nome from academico_tmp; 1 row created.
0 comentários:
Postar um comentário