Dépannage d'une erreur « ORA-00936 » avec une instruction INSERT SELECT dans Oracle 11G
Une erreur « ORA-00936 : expression manquante » peut survenir lors de l'exécution d'une instruction INSERT SELECT dans Oracle 11G. Analysons un cas spécifique pour résoudre ce problème.
Problème :
Une instruction SQL tente d'insérer des données d'une sous-requête dans une table :
insert into table1 (col1, col2) values (select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2);
La sous-requête, lorsqu'elle est exécutée séparément, fonctionne correctement, récupérant les lignes de deux tables, oldtable1 et oldtable2. Cependant, lorsqu'elle est exécutée en tant que source de données pour l'instruction INSERT, l'erreur « ORA-00936 : expression manquante » est rencontrée.
Solution :
L'erreur provient de une syntaxe incorrecte dans l'instruction INSERT. Le mot clé VALUES n'est pas nécessaire lors de l'utilisation d'une instruction SELECT pour remplir la table cible. La syntaxe correcte doit être :
insert into table1 (col1, col2) select t1.col1, t2.col2 from oldtable1 t1, oldtable2 t2
En omettant la partie VALUES, l'instruction INSERT exécute correctement la sous-requête et remplit la table1 avec les données sélectionnées.
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!