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

Oracle Discussion :

ORA-02287 : faire un insert avec un WITH


Sujet :

Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Points : 62
    Points
    62
    Par défaut ORA-02287 : faire un insert avec un WITH
    Bonjour,

    Après la résolution de mon select avec un WITH bien casse-tête, je désire à présent faire un insert du résultat de la "table" obtenue dans une table de résultats...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    INSERT INTO LISTE_IDENTIFIANTS(ID_IDENT,AGT_MATRICULE, APP_C_APPLI, L_IDENT, D_DER_MAJ,B_ACTIF, APP_PROFIL, APP_ENV,APP_SAISIE)
    WITH ALL_COMPTES_AD AS
    (
    SELECT matricule, cast(t.column_value.extract('//text()') AS varchar2(50)) unmemberof
      FROM COMPTES_AD,
      TABLE( xmlsequence( xmltype(
        '<x><x>' || REPLACE(REPLACE(MEMBEROF,' ',NULL), ',', '</x><x>') || '</x></x>'
      ).EXTRACT('//x/*'))) T
    )
     
     
    SELECT s_ide.nextval, MATRICULE, 'INTRANET' AS APP_C_APPLI, UNMEMBEROF, SYSDATE, 'O' AS B_ACTIF, '', '', 'N' AS APP_SAISIE
      FROM ALL_COMPTES_AD 
    WHERE unmemberof LIKE 'yga_dossier%'
    ORDER BY MATRICULE
    le problème semble venir de s_ide.nextval qui est une clé auto-incrémentée...

    Merci de m'aider...

  2. #2
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    create sequence seq1;
     
    create table tst (id number, nom varchar2(20), seq number);
    INSERT INTO tst
    WITH ALL_COMPTES_AD AS
    (
    SELECT 1 id, 'name1' nom from dual union all
    SELECT 2 , 'name2'  from dual union all
    SELECT 5 , 'name5'  from dual 
    )
    SELECT id,nom,seq1.NEXTVAL
      FROM ALL_COMPTES_AD; 
     
    3 rows inserted
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    INSERT INTO tst
    WITH ALL_COMPTES_AD AS
    (
    SELECT 1 id, 'name1' nom from dual union all
    SELECT 2 , 'name2'  from dual union all
    SELECT 5 , 'name5'  from dual 
    )
    SELECT id,nom,seq1.NEXTVAL
      FROM ALL_COMPTES_AD 
    order by nom;
     
    Erreur à la ligne de commande : 11, colonne : 19
    Rapport d'erreur :
    Erreur SQL : ORA-02287: numéro de séquence non autorisé ici
    02287. 00000 -  "sequence number not allowed here"
    *Cause:    The specified sequence number (CURRVAL or NEXTVAL) is inappropriate
               here in the statement.
    *Action:   Remove the sequence number.
    Pas d'order by!

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

Discussions similaires

  1. [MySQL] Faire un INSERT INTO avec un tableau associatif
    Par elo1874 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 08/04/2013, 22h11
  2. Réponses: 2
    Dernier message: 07/10/2011, 16h17
  3. [SPRING] DAO faire un INSERT avec idbparameters
    Par meda dans le forum ASP.NET
    Réponses: 3
    Dernier message: 17/05/2008, 18h39
  4. [ADO.Net][C#/SQL 2005] Comment faire INSERT avec variable ?
    Par hduchemin dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/01/2006, 18h34
  5. problème pour faire un insert avec une image
    Par vbcasimir dans le forum Modules
    Réponses: 3
    Dernier message: 02/11/2005, 10h21

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