Maison >base de données >tutoriel mysql >Comment utiliser correctement INSERT SELECT dans Oracle 11g pour éviter ORA-00936 ?
Dans Oracle 11G, l'instruction INSERT SELECT permet un transfert efficace de données d'une table à une autre à l'aide d'une sous-requête. Cependant, les utilisateurs peuvent rencontrer des erreurs inattendues si leur syntaxe n'est pas correcte.
Requête utilisateur :
Un utilisateur a tenté d'insérer les résultats d'une sous-requête dans une nouvelle table en utilisant la déclaration suivante :
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
Cependant, l'utilisateur a rencontré le problème suivant erreur :
SQL Error: ORA-00936: missing expression
Solution :
La syntaxe fournie est incorrecte. L'instruction INSERT SELECT dans Oracle ne nécessite pas le mot clé VALUES, qui est couramment utilisé dans d'autres dialectes SQL. La syntaxe correcte doit être :
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
En d'autres termes, supprimez simplement le mot-clé VALUES du début de l'instruction. Cela permettra à Oracle d'exécuter correctement la requête INSERT SELECT, en insérant les résultats de la sous-requête dans la table1.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!