Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jah

[Resolvido] Erro: 'too many values'

Recommended Posts

Bom dia,

 

Sou novo no ORACLE e antes trabalhava somente com MySQL e utilizava inserção de múltiplos itens sem precisar utilizar um for para dar vários inserts, utilizando somente string.

 

Então vamos ao que interessa. Gostaria de inserir o seguinte comando:

insert into TABLE(COLUMN) values('S124', 'B124', 'O504')

 

Tenho uma coluna com sequence de ID, e uma segunda coluna que é varchar para inserção de itens. Como se fosse ID e NOME por exemplo.

Porém ao confirmar o comando, aparece a seguinte mensagem de erro:

ORA-00913: valores demais

00913. 00000 - "too many values"

 

E a solução de

insert into TABLE(COLUMN) values('S124')

insert into TABLE(COLUMN) values('B124')

insert into TABLE(COLUMN) values('O504')

não é válida pra mim.

 

Se possível gostaria que alguém desse uma força. :rolleyes:

 

Aproveitando, tenho outra perguntinha:

Por que o ORACLE muda automaticamente os data types de INT para NUMBER

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

... quer dizer que a tabela que está sendo inserida possui mais colunas do que valores correspondentes.

 

Fonte: http://74.125.47.132/search?q=cache:h22-c8...lient=firefox-a

Certo, mas não é lógico. Porque a primeira coluna insere dados automaticamente, não entra valor null, e sim uma sequence number.

Para uma query do jeito que precisaria em inserir vários valores neste tipo de coluna, como faria?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sintaxe do insert

 

Insert into <lista campos> values <lista valores> exige que as duas listas tenham os mesmos tipo e o núnero de elementos da lista seja o mesmo.

 

O que pode ser feito e definir os elementos num array e ler este array para o insert.

 

Exemplo :

 

DECLARE
 -- lista 
  TYPE T_LISTA	 IS VARRAY(3) OF VARCHAR2(50);
  V_LISTA		  T_LISTA  := T_LISTA('1234','2345','3456');
BEGIN
  FOR i IN 1..V_LISTA.count
  LOOP
	INSERT INTO TABELA (COLUNA) VALUES (V_LISTA(i));
  END LOOP;   
END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.