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

SQL Oracle Discussion :

probleme de sequence dans clause select


Sujet :

SQL Oracle

  1. #1
    Membre confirmé Avatar de pseudobidon57
    Inscrit en
    Octobre 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 133
    Par défaut probleme de sequence dans clause select
    bonjour, je souhaite faire une insertion dans une table en utilisant la clause select , mas oracle retourne l'erreur suivante:
    ORA-02287: sequence number not allowed here.
    mon code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    insert into ph2_customer
    (name,customer_id)
    select distinct
    i.old_sys_ref,
    seq_cust_id.nextval
    from ph1_item i, customer c
    where i.customer_id is null
    order by i.old_sys_ref;
    Ma question est donc, est il possible d'utiliser une sequence dans un insert ayant une clause select, et si oui, comment faire??

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Hum... j'effectuerais cette opération en plusieurs étapes bien que syntaxiquement se soit possible.

    Avez-vous remarqué que vous faîtes un produit cartésien entre les tables ph1_item et customer ?
    Enfin la clause ORDER BY est superflu dans une sous-requête d'une requête INSERT.

  3. #3
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    il y a quand même une limitation...
    on ne peut pas mettre la séquence dans un Select DISTINCT.

    sinon Oracle irait prendre le No de séquence dans le Select initial, donc avant le tri des doublons, et le no ramené par la séquence rendrait forcément chaque ligne unique, ce qui rendrait le DISTINCT caduque.

  4. #4
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    WorkAround => utiliser une vue en ligne...
    petit test (avec une table de ma base...)
    ça passe pas avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Select distinct 
            testseq.nextval
            , category
    From    populationbasic ;
     
    ORA-02287: sequence number not allowed here
    mais très bien avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Select
            testseq.nextval
            , Category
    From 
            (
                Select distinct 
                        category
                From    populationbasic
            ) ;
     
    NEXTVAL	CATEGORY
    1	CatA
    2	CatB
    3	CatC

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de sequence dans Oracle Forms
    Par adiltyane dans le forum Forms
    Réponses: 7
    Dernier message: 19/11/2007, 17h32
  2. [AJAX] ajax dans un select
    Par tiger63 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/05/2007, 16h59
  3. 3 conditions dans une clause SELECT
    Par Aurèl90 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 03/11/2005, 17h05
  4. If dans la clause SELECT...
    Par argv666 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 29/10/2005, 08h13
  5. Sous-requête dans la clause Select
    Par Danger dans le forum WinDev
    Réponses: 2
    Dernier message: 24/05/2005, 18h33

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