Maison > base de données > tutoriel mysql > Pourquoi 'SELECT * INTO new_table FROM old_table;' Échec dans Oracle et comment puis-je créer correctement une nouvelle table ?

Pourquoi 'SELECT * INTO new_table FROM old_table;' Échec dans Oracle et comment puis-je créer correctement une nouvelle table ?

Barbara Streisand
Libérer: 2025-01-05 10:04:44
original
539 Les gens l'ont consulté

Why Does

ELECT INTO Méfait inattendu dans Oracle

Dans le domaine de SQL, l'instruction SELECT INTO occupe une position de premier plan, permettant une extraction de données sans effort et insertion dans une nouvelle destination. Cependant, dans le contexte du dialecte unique d'Oracle, cette opération dévoile une tournure surprenante.

Contrairement aux attentes conventionnelles, la requête "SELECT * INTO new_table FROM old_table;" déclenche une erreur imprévue : "Erreur SQL : ORA-00905 : mot-clé manquant." Cette anomalie découle de l'interprétation distincte par Oracle de la clause INTO.

Dévoilement de l'implémentation d'Oracle

Oracle s'écarte du comportement standard SELECT INTO, optant pour une approche alternative. Si la table cible existe déjà, Oracle exécute une opération INSERT INTO implicite, en respectant la syntaxe suivante :

insert into new_table
select * from old_table
/
Copier après la connexion

Alternativement, pour créer une toute nouvelle table basée sur des enregistrements existants, Oracle utilise la syntaxe suivante :

create table new_table as
select * from old_table
/
Copier après la connexion

Curieusement, Oracle propose également une solution pour créer un vide table :

create table new_table as
select * from old_table
where 1 = 2
/
Copier après la connexion

En ajoutant une clause WHERE avec une condition intrinsèquement fausse, Oracle construit ingénieusement une table vide sans copier les données de la source.

L'approche distinctive d'Oracle en matière de SELECT INTO présente un changement de la norme établie, obligeant les développeurs à s'adapter à sa syntaxe et à sa sémantique uniques. Cependant, malgré la surprise initiale, cet écart offre flexibilité et contrôle sur la manipulation des données au sein du vaste écosystème de bases de données d'Oracle.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal