Maison >base de données >tutoriel mysql >En quoi « SELECT INTO » d'Oracle diffère-t-il du SQL standard et quelles sont les solutions de contournement ?

En quoi « SELECT INTO » d'Oracle diffère-t-il du SQL standard et quelles sont les solutions de contournement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-04 17:08:41653parcourir

How Does Oracle's `SELECT INTO` Differ from Standard SQL, and What are the Workarounds?

Interprétation unique de SELECT INTO par Oracle

Alors que la syntaxe SQL standard pour SELECT INTO implique de créer une nouvelle table et de la remplir avec les données d'un table existante, l'implémentation d'Oracle diffère considérablement.

Erreur Rencontré :

Lorsque vous essayez d'exécuter le standard SELECT * INTO new_table FROM old_table dans Oracle, vous pouvez rencontrer l'erreur "mot clé manquant" (ORA-00905). En effet, la syntaxe d'Oracle pour effectuer la même opération nécessite une approche différente.

Syntaxe d'Oracle pour créer une nouvelle table et remplir des données :

Pour exécuter avec succès SELECT INTO dans Oracle, vous avez plusieurs options :

  1. Si la nouvelle table est déjà existe :

    Utilisez l'instruction INSERT INTO :

    INSERT INTO new_table
    SELECT *
    FROM old_table;
  2. Si vous souhaitez créer une nouvelle table basée sur les enregistrements d'un fichier existant table :

    Utilisez CREATE TABLE ... AS SELECT déclaration :

    CREATE TABLE new_table AS
    SELECT *
    FROM old_table;
  3. Si le but est de créer une nouvelle table vide :

    Ajoutez une clause WHERE avec une condition qui peut ne soit jamais vrai :

    CREATE TABLE new_table AS
    SELECT *
    FROM old_table
    WHERE 1 = 2;

Important Considérations :

  • L'instruction CREATE TABLE ... AS SELECT crée uniquement une table avec la même projection que la table source.
  • La nouvelle table n'aura aucune contrainte , déclencheurs ou index hérités de la table d'origine.

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