IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Insert de ligne identiques en tout points sauf Clé Primaire


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 111
    Par défaut Insert de ligne identiques en tout points sauf Clé Primaire
    Bonjour,
    j'ai une base dont une table doit être modifiée.
    Cette table est composée de plusieurs colonnes (logique) et pour apporter cette modification, pour certaine lignes déjà existantes je dois rajouter es doublons dont seule la clé primaire change.
    Je m'explique:
    j'ai un utilisateur appelé Charles Gilbert qui travaille dans le bâtiment 12.
    avant la clé primaire était 'CHAR-12-GILB' (me demandez pas pourquoi cette nomenclature) à cause de contraintes multiples, je ne peux modifier directement la clé primaire (enregistrement fils existant).
    Je dois donc créer des nouveaux enregistrements avec ma nouvelle clé primaire pour ensuite réassigner les enregistrements fils...Sachant que je veux modifier tout les membres de mon bâtiment 12.
    Bien entendu la nouvelle clé primaire sera 'CHAR-GILB'.
    J'avais pensé à un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Insert into Tab_user (Cle_primaire, batiment, ancienneté)
    values (substr(Cle_primaire,1,5)||substr(Cle_primaire,length(Cle_primaire)-2,2),batiment,ancienneté) where cle_primaire like '%-12-%'
    Mais cette requete ne fonctionne pas. S'il vous plait aidez moi!!!


    J'ai recherché sur internet de l'aide, je trouve des explications claires sur l'Insert mais pas poussés à ce point là

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    insert into select ou insert into values
    Dans le cas où tu insères des variables, c'est values qu'il faut utiliser, dans le cas où tu insères des données depuis une table, c'est insert into select

    Donc toi c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Tab_user (Cle_primaire, batiment, ancienneté)
    SELECT substr(Cle_primaire,1,5)||substr(Cle_primaire,length(Cle_primaire)-2,2),batiment,ancienneté) FROM ... WHERE cle_primaire LIKE '%-12-%'

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2014, 14h47
  2. Réponses: 4
    Dernier message: 28/07/2011, 11h00
  3. Réponses: 3
    Dernier message: 28/08/2009, 15h01
  4. [RegEx] tout remplacer sauf ...
    Par prgasp77 dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2006, 14h26
  5. Extraction de ligne identique
    Par sacados1 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 31/12/2005, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo