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

DB2 Discussion :

Erreur SQL7008 SQLSTATE55019


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 33
    Par défaut Erreur SQL7008 SQLSTATE55019
    Bonjour,

    Lors de l'exécution d'une stored procedure toute simple, je reçois l'erreur suivante :

    Etat SQL : 55019
    Code fournisseur : -7008
    Message : [SQL7008] Table PRR211F de MISSDTA incorrecte pour cette opération. Cause . . . . . : Code raison : 3. Codes raison : 1 - PRR211F n'a aucun membre. 2 - PRR211F sauvegardée avec libération de mémoire. 3 -- PRR211F non journalisé, aucun droit sur le journal ou l'état du journal est *STANDBY. Les fichiers avec action de contrainte RI de valeur CASCADE, SET NULL ou SET DEFAULT doivent être journalisés dans même journal. 4 et 5 - PRR211F existe ou en cours de création dans biblio de prod, mais utilisateur en mode débogage UPDPROD(*NO). 6 - Schéma en cours de création, mais util en mode débogage avec UPDPROD(*NO). 7 - Table sous-jacente utilisée pour créer une vue incorrecte. Table décrite dans un programme ou située dans schéma temporaire. 8 -- Table sous-jacente stockée dans un ASP qui n'est pas celui de l'objet créé. 9 -- Index suspendu ou incorrect. 10 -- Contrainte ou déclencheur associé à un type de table incorrect ou nombre max de déclencheurs atteint, ou bien noeuds de la table répartie ne sont pas tous de la même édition. 11 - Table répartie en cours de création dans schéma QTEMP ou vue en cours de création sur plusieurs tables réparties. 12 - Impossible de créer une table dans QTEMP, QSYS, QSYS2 ou SYSIBM ; elle a une colonne de type DATALINK avec option FILE LINK CONTROL. 13 - Table contenant colonne DATALINK ou LOB incompatible avec dictionnaire de données. 14 -- Colonne DATALINK IDENTITY ou LOB ne peut être ajoutée à une table non SQL. 15 - Tentative de création ou de modif d'un objet avec une définition de validation d'un ASP différent. 16 - Modification incorrecte de séquence PRR211F de MISSDTA avec une commande CL. 17 - Table non utilisable ; elle contient des transactions partielles. Que faire . . . : Selon le code raison : 1 - Ajoutez un membre à PRR211F (ADDPFM). 2 - Restaurez PRR211F (RSTOBJ). 3 -- Démarrez la journalisation sur PRR211F (STRJRNPF), accédez au journal, ou modifiez l'état du journal par *ACTIVE (CHGJRN). 4, 5 ou 6 - Exécutez CHGDBG avec UPDPROD(*YES). 7 - Enlevez les noms de tables identifiant les fichiers de QTEMP ou décrits dans programmes. 8 - Utilisez des tables du même ASP. 9 - Exécutez EDTRBDAP et modifiez l'état de la séquence du chemin d'accès de SUSPENDU à 1-99 ou *OPN. Sinon, reconstruisez ou supprimez la contrainte ou l'index unique. 10 - Entrez des tables admises pour ces contraintes ou ces déclencheurs. 11 - Entrez un autre schéma que QTEMP ou créez la vue sur une seule table répartie. 12 - Entrez un autre schéma que QTEMP, QSYS, QSYS2 ou SYSIBM. 13 - Entrez un schéma qui ne contient pas de dictionnaire de données ou supprimez toutes les colonnes DATALINK et LOB. 14 -- Indiquez une table SQL. 15 - Entrez un objet du même ASP comme définition de validation en cours ou arrêtez cette dernière. 16 - Indiquez une autre séquence ou supprimez la zone de données associée à la séquence PRR211F de MISSDTA, puis recréez la séquence. 17 - Consultez le msg précédent dans l'historique du travail.
    Pourtant ma procédure fonctionne lorsqu'il n'y a pas de code dedans, et le code qui y est exécuté fonctionne lorsqu'il n'est pas dans la procédure.

    La procédure (ci jointe) ne contient que des DELETE, INSERT INTO... SELECT et UPDATE.

    Rien de spécial donc.

    Y aurait-il une subtilité que je n'aurais pas saisie ?
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Message : [SQL7008] Table PRR211F de MISSDTA incorrecte pour cette opération. Cause . . . . . : Code raison : 3 ...
    ...
    3 -- PRR211F non journalisé, aucun droit sur le journal ou l'état du journal est *STANDBY. Les fichiers avec action de contrainte RI de valeur CASCADE, SET NULL ou SET DEFAULT doivent être journalisés dans même journal.
    Pas sûr mais ajoute la ligne en rouge ci-dessous et fais un essai.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MODIFIES SQL DATA
    SET OPTION COMMIT = *NONE
    BEGIN ATOMIC

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 33
    Par défaut
    Voilà. Mais ca n'a rien changé.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Par défaut
    as-tu une contrainte de clé étrangère ?
    car comme le message te l'indique, il doit y avoir un delete ou update et pour que le système s'assure qu'il n'y a pas violation de la contrainte, les tables doivent être journalisées dans le même journal

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2006
    Messages : 33
    Par défaut
    Bonjour,

    En fait lorsque j'exécute la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM missdta.prr212f;
    tout seule dans la procédure, j'ai la même erreur, par contre si je l'exécute en dehors (comme tout le reste de ma SP), aucun problème.

    La table est la suivante :

    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
    21
    22
    23
    24
    25
    26
    CREATE TABLE MISSDTA.PRR212F 
    ( 	
    	ID       INT GENERATED ALWAYS AS IDENTITY,
        IDREJET  INT NOT NULL ,
    	DTIMPR   DECIMAL(8, 0) NOT NULL DEFAULT 0 , 
    	NRPOL    DECIMAL(8, 0) NOT NULL DEFAULT 0 , 
    	NRAVN    DECIMAL(2, 0) NOT NULL DEFAULT 0 , 
    	NRSAV    DECIMAL(2, 0) NOT NULL DEFAULT 0 , 
        CDSOCT   DECIMAL(2, 0) DEFAULT 1 NOT NULL ,
    	NRRIS    DECIMAL(2, 0) NOT NULL DEFAULT 0 , 
    	CDREF    DECIMAL(2, 0) NOT NULL DEFAULT 0 , 
    	NRREF    CHAR(50)   NOT NULL DEFAULT '', 
    	PRNNOM   VARCHAR(255) , 
    	NRPRD    DECIMAL(8, 0) ,
    	PRDNOM   VARCHAR(255) ,
    	PRDADR   VARCHAR(255) ,
    	PRDADR2  VARCHAR(255) ,
    	PRDLOC   VARCHAR(255) ,
    	VEHICNOM VARCHAR(255) ,
    	NRPLQ    VARCHAR(255) ,
    	SYSDAT   NUMERIC(8, 0) NOT NULL DEFAULT 0 , 
    	SYSHEU   NUMERIC(6, 0) NOT NULL DEFAULT 0 , 
    	SYSUSR   CHAR(10) CCSID 500 NOT NULL DEFAULT '',
    	PRIMARY KEY (ID)
    )
    RCDFMT PRR212FR1;
    IDREJET est une clé étrangère mais il n'y a aucune contrainte pour cela dans la DB.

    Par contre la table n'est pas journalisée. Ca serait ca le problème ?

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    D'après ce que j'ai lu sur un SQL Redbook et la toile, ça a bien l'air d'être lié à un pb de journalisation mais c'est alors bizarre que le "commit = *none" ne marche pas... Ceux qui ont déjà eu ce pb (voir ici) l'ont résolu en journalisant la table, mais bon, c'est pas vraiment ce que tu veux faire, n'est-ce pas ?

    Toujours dans le doute, essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM missdta.prr212f WITH NC;
    Remarque : Dans ton premier post, le message d'erreur fait référence à la table PRR211F et dans le script que tu as joint à ce post, cette table ne figure nulle part. Peux-tu expliquer cette étrangeté ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/12/2009, 18h00
  2. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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