Inserir uma instrução de selecção no Oracle 11G
Estou a tentar executar uma simples declaração sql no Oracle 11g.
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Muito simples. Juntar a tabela 1 à tabela 2 antiga cartesiana, colocar os valores resultantes na tabela 1.
Já geri a subquaria sozinha, e funciona perfeitamente.
select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
Quando tento executar a declaração completa, recebo o seguinte erro:
SQL Error: ORA-00936: missing expression
00936. 00000 - "missing expression"
Também não consigo pô-lo a funcionar em MySql. Há algo de errado com a minha declaração, mas não sei bem o que é.
31
5 answers
A sua pergunta deve ser:
insert into table1 (col1, col2)
select t1.col1, t2.col2
from oldtable1 t1, oldtable2 t2
Isto é, sem a parte de VALUES
.
70
Author: Ryan, 2013-06-21 14:59:25
Livra-te da palavra-chave values
e dos pais. Você pode ver um exemplo aqui.
Esta é a sintaxe básica de inserção:
INSERT INTO "table_name" ("column1", "column2", ...)
VALUES ("value1", "value2", ...);
Este é O INSERT SELECT syntax:
INSERT INTO "table1" ("column1", "column2", ...)
SELECT "column3", "column4", ...
FROM "table2";
9
Author: cwallenpoole, 2018-05-31 16:30:16
Você não precisa da cláusula de 'valores' ao usar um 'select' como sua fonte.
insert into table1 (col1, col2)
select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2;
7
Author: Chains, 2011-09-06 16:56:13
Para inserir dados na tabela você pode escrever
insert into tablename values(column_name1,column_name2,column_name3);
Mas escreva o column_name
na sequência como por sequência na tabela ...
1
Author: sudarshan, 2017-01-23 19:54:14
Existe uma outra opção para inserir dados na tabela ..
insert into tablename values(&column_name1,&column_name2,&column_name3);
Irá abrir outra janela para inserir o valor dos dados..
1
Author: sudarshan, 2017-01-23 19:54:29