Maison >base de données >tutoriel mysql >En quoi « SELECT INTO » d'Oracle diffère-t-il des autres dialectes SQL et comment puis-je éviter « ORA-00905 » ?

En quoi « SELECT INTO » d'Oracle diffère-t-il des autres dialectes SQL et comment puis-je éviter « ORA-00905 » ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-04 08:12:33638parcourir

How Does Oracle's `SELECT INTO` Differ from Other SQL Dialects, and How Can I Avoid

Interprétation unique de SELECT INTO par Oracle

Dans Oracle, le fonctionnement typique de l'instruction SELECT INTO diffère des autres dialectes SQL. Alors que SELECT INTO associe généralement la récupération de données à la création d'une nouvelle table, Oracle l'implémente distinctement.

Pour résoudre l'erreur « ORA-00905 : mot-clé manquant », il est crucial de comprendre l'implémentation d'Oracle. La syntaxe correcte pour créer une nouvelle table avec les données d'une table existante est la suivante :

Création d'une nouvelle table :

Si la table de destination, NEW_TABLE, existe déjà :

insert into new_table
select * from old_table;

Pour créer NEW_TABLE en fonction des données de OLD_TABLE :

create table new_table as
select * from old_table;

Création d'une structure de table vide :

Si le but est de créer une table vide avec la même structure que OLD_TABLE, utilisez une clause WHERE avec une condition impossible :

create table new_table as
select * from old_table
where 1 = 2;

Notez que lors de la création d'une table à l'aide de SELECT INTO, Oracle ne réplique que le contenu de la table. schéma, à l’exclusion des contraintes, déclencheurs ou index présents dans la table d’origine. Ceux-ci doivent être ajoutés manuellement si vous le souhaitez.

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