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 :

Erreur d'exécution d'un trigger et option manquante ?


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut Erreur d'exécution d'un trigger et option manquante ?
    Bonjour,

    Je rencontre le problème suivant dont j'aimerais que vous m'aidiez à comprendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO RANDRIANO.RDR_MYClasses (ID, Name, Type) values (RANDRIANO.mypkg_guid.guidclass,'Class 4', '4')
     
    ORA-00922: option erronée ou absente
    ORA-06512: à "RANDRIANO.RDR_CREATETAB", ligne 11
    ORA-06512: à "RANDRIANO.A_I_RDR_MYClasses", ligne 75
    ORA-04088: erreur lors d'exécution du déclencheur 'RANDRIANO.A_I_RDR_MYClasses'
    Les codes correspondants a ce trigger et à cette procédure est:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    CREATE OR REPLACE  PROCEDURE RANDRIANO."RDR_CREATETAB"  (v_tab
        varchar2)
     
    is
        v_cdef varchar2 (256);
     
    pragma autonomous_transaction;
     
    begin
     
    	 EXECUTE IMMEDIATE
       'CREATE TABLE  ' || v_tab ||
       ' ( idequipment varchar2(38) PRIMARY KEY)';
     
    end;
     
    CREATE OR REPLACE TRIGGER RANDRIANO."A_I_RDR_MYCLASSES" AFTER
    INSERT ON RANDRIANO.RDR_MYCLASSES FOR EACH ROW Declare
    	v_Name varchar2 (256);
    	v_Type int;
    	v_TableName varchar2 (512);
    	v_DEFTableName varchar2 (512);
    	 v_ColumnName varchar2 (512);
    	v_ColumnType varchar2 (512);
    	v_ColumnTypeChar varchar2 (512);
    	v_ColumnPrecision int;
    	v_ColumnHasPrecision number(1);
    	v_IsNullable varchar2(25);
    	v_Default varchar2 (256);
    	v_ColumnDEFAULT varchar2 (4000);
    	v_fk_name varchar2(30);
    	v_namefk varchar2(23);
    	v_fk_name1 varchar2(30);
    	v_namefk1 varchar2(14);
    	v_cdef varchar2(256);
     
     
     
     
     
    BEGIN
     
    PKG_UPDATEAVAINS.v_compt := PKG_UPDATEAVAINS.v_compt+1;
    --dbms_output.put_line('ici');
     
    select :new.name CLE into v_name from dual RDR_MYCLASSES;
     
    select :new.type CLE into v_type from dual RDR_MYCLASSES;
     
     
     
    v_TableName := 'RDR_ATT_Equi_'||v_Name;
     
    -- begin if 
     
    IF (v_Type = 1) then
    		v_DEFTableName := 'EQUIPMENT';
    end if;
    	IF (v_Type = 2) then
    		v_DEFTableName := 'TYPE';
    		end if ;
    	IF (v_Type = 4)then
    		v_DEFTableName := 'RDR_VARS';
    		end if;
    	IF (v_Type = 8)then
    		v_DEFTableName := 'PLUGMAP';
    		end if ;
    	IF (v_Type = 16) then
    		v_DEFTableName := 'CONNECTION';
    		end if ;
    	IF (v_Type = 32)then
    		v_DEFTableName:= 'RULE';
    		end if ;
    	IF (v_Type = 64) then
    		v_DEFTableName := 'ACCESS';
    		end if ;
     
    	IF (v_Type = 128) then
    		v_DEFTableName := 'OBJ_DEF';
    		end if ;
     
    	IF (v_Type = 256) then
    		v_DEFTableName := 'SIMUL';
    		end if ;
     
    --end if 
     
    --create table class
     
    v_tablename := substr(v_tablename,1,30);
     
    rdr_createtab(v_TableName); -- ligne n° 75 de ce trigger
    Je me demande si c'est un problème de casse ou bien un problème de roles c'est à dire de GRANT mais je remarque que le schéma ne doit pas être un schéma système (sysman)
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    t'es un grand garçon quand même... le débugage on peut pas le faire pour toi, on a pas accès à ta base de donnée et apparemment le trigger n'est pas complet

    En tout cas, en terme d'écriture on peut déjà signaler 2 SELECT inutiles et du coup 2 variables en plus qui ne servent à rien. Des IF à gogo au lieu de CASE. Rend le plus lisible et tu trouveras surement l'erreur tout seule... un bon moyen de débugger est d'exécuter le code à la main dans un session pour commencer.

    Edit : à tout hasard je dirais bien qu'il est possible que tu envoies NULL dans le paramètre de ta procédure

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Par défaut
    Bonjour,

    Il semble que l'erreur vienne du trigger A_I_EED_SET_CLASSES, dont on n'a pas le code
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas faux

  5. #5
    Membre extrêmement actif
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 221
    Par défaut
    Bon, désolé j'ai posté le mauvais rapport d'erreur. Maintenant c'est le bon, voir le 1er message !!
    J'ai copié le code jusqu'au point où l'erreur se produit c'est à dire la ligne 75 un appel à une procédure !!!
    orafrance ! Je n'ai pas l'intention de profiter des gens pour déboguer mon code mais je me demande si cette erreur est courante et qui en a l'expérience
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    cette erreur est en effet courante mais dépend complètement du code. Relis mon message et suis mes recommandations

Discussions similaires

  1. Erreurs lors d'exécution d'un trigger
    Par balota2012 dans le forum Oracle
    Réponses: 7
    Dernier message: 23/11/2012, 11h56
  2. Récupérer un erreur sur l'exécution d'un trigger
    Par tchoimars dans le forum PL/SQL
    Réponses: 1
    Dernier message: 06/06/2007, 16h07
  3. [CR8][VB6] Erreur d'exécution 20533
    Par pvava dans le forum SDK
    Réponses: 1
    Dernier message: 01/02/2005, 10h27
  4. Erreurs d'exécution sous delphi 5
    Par nkd dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2004, 17h25
  5. [Apache Perl] Erreur à l'exécution de mes cgi
    Par GLDavid dans le forum Apache
    Réponses: 4
    Dernier message: 28/08/2004, 20h23

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