Maison >base de données >tutoriel mysql >Pourquoi est-ce que je reçois une erreur ORA-00936 avec mon instruction INSERT SELECT Oracle 11g ?

Pourquoi est-ce que je reçois une erreur ORA-00936 avec mon instruction INSERT SELECT Oracle 11g ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-29 17:50:11634parcourir

Why Am I Getting an ORA-00936 Error with My Oracle 11g INSERT SELECT Statement?

Dépannage de l'instruction INSERT SELECT dans Oracle 11G

Lorsque vous tentez d'exécuter une instruction INSERT SELECT dans Oracle 11G, vous pouvez rencontrer un message « ORA- 00936 : erreur "expression manquante". Cette erreur indique généralement un problème avec la syntaxe de l'instruction.

Pour résoudre ce problème, inspectez attentivement l'instruction. Une erreur courante consiste à inclure le mot clé VALUES dans l'instruction INSERT SELECT. Dans Oracle, le mot-clé VALUES n'est utilisé que lors de l'insertion de valeurs explicites dans une table, pas lors de la sélection de valeurs dans une autre table.

La syntaxe correcte pour une instruction INSERT SELECT est :

INSERT INTO table_name (column_list)
SELECT column_list
FROM source_table;

Par conséquent, l'instruction doit être modifiée comme suit :

INSERT INTO table1 (col1, col2)
SELECT t1.col1, t2.col2
FROM oldtable1 t1, oldtable2 t2;

Cette syntaxe corrigée doit exécuter avec succès la jointure cartésienne entre oldtable1 et oldtable2 et insérer le résultat lignes dans le tableau 1.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn