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 exécution procédure stockée


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut Erreur exécution procédure stockée
    Bonjour tout le monde, voici le corps de ma procédure stockée qui doit comparer les paramètres d'entrée/sortie de 2 packages.
    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
    CREATE OR REPLACE PROCEDURE COMPARE_PARAMS_PACKS (ARG OUT VARCHAR2 ) IS
       PROC_NAME VARCHAR2(100);
       CURSOR GET_PROC_NAME IS SELECT procedure_name from all_procedures where owner = 'THERIAQUE' order by 1;
       BEGIN
       OPEN GET_PROC_NAME;
       LOOP
          FETCH GET_PROC_NAME INTO PROC_NAME;
          EXIT WHEN GET_PROC_NAME%NOTFOUND;
          	IF PROC_NAME IS NOT NULL THEN
    			SELECT ARGUMENT_NAME INTO ARG
    			FROM all_arguments 
    			where owner = 'THERIAQUE' AND PACKAGE_NAME ='PACK_THERIAQUE_API'
    			AND DATA_TYPE not in ('PL/SQL RECORD', 'REF CURSOR')
    			MINUS 
    			SELECT ARGUMENT_NAME
    			FROM all_arguments 
    			where owner = 'THERIAQUE' AND PACKAGE_NAME ='OLD_PACK_THERIAQUE_API' AND OBJECT_NAME=PROC_NAME
    			AND DATA_TYPE not in ('PL/SQL RECORD', 'REF CURSOR')
    			ORDER BY 1;
    		END IF;
    	  END LOOP;
       CLOSE GET_PROC_NAME;
    END;
    Je crois que la syntaxe est correct mais une erreur est généré lors de l'exécution.
    Est ce que quequ'un pourrait m'aider à détecter la source l'anomalie.
    Merci d'avance pour votre précieuse collaboration.
    Cordialement.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Peut être qu'en donnant le libellé de l'erreur, ça aiderait, non ?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    L'erreur est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ORA-01422: l'extraction exacte ramène plus que le nombre de lignes demandé
    ORA-06512: à "THERIAQUE.COMPARE_PARAMS_PACKS", ligne 10
    ORA-06512: à ligne 7

  4. #4
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Il me semble que tu as une erreur dans cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT ARGUMENT_NAME INTO ARG
    			FROM all_arguments 
    			WHERE owner = 'THERIAQUE' AND PACKAGE_NAME ='PACK_THERIAQUE_API'
    			AND DATA_TYPE NOT IN ('PL/SQL RECORD', 'REF CURSOR')
    			MINUS 
    			SELECT ARGUMENT_NAME
    			FROM all_arguments 
    			WHERE owner = 'THERIAQUE' AND PACKAGE_NAME ='OLD_PACK_THERIAQUE_API' AND OBJECT_NAME=PROC_NAME
    			AND DATA_TYPE NOT IN ('PL/SQL RECORD', 'REF CURSOR')
    			ORDER BY 1;
    elle te retourne plus d'un enregistrement, tout simplement.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    276
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 276
    Par défaut
    Oui vous avez raison, j'ai bien testé cela. Avez vous une idée pour changer cela et obtenir les résultats escomptés.

  6. #6
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Vous pouvez essayer avec un deuxième curseur en lui passant un paramètre en l'occurrence 'PROC_NAME'

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

Discussions similaires

  1. Erreur Exécution procédure stockées
    Par pacifiquement dans le forum Développement
    Réponses: 3
    Dernier message: 17/06/2012, 20h19
  2. Réponses: 3
    Dernier message: 21/10/2006, 22h46
  3. Erreur 7415 Procédure Stockée et OLE DB MS.JET 4.0
    Par yoopee dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/07/2006, 14h20
  4. [VB.NET]Performance exécution procédure stockée
    Par Franck2mars dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/05/2006, 16h11
  5. [SQL SERVER 2K]Droits d'exécution procédure stockée
    Par Franck2mars dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 16/05/2006, 15h01

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