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 :

[Oracle10g] Erreur lors de la création d'un package contenant une procédure


Sujet :

Oracle

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut [Oracle10g] Erreur lors de la création d'un package contenant une procédure
    Bonjour

    voilà, je suis débutante en Oracle, j'aimerai créer un package contenant une procédure stockée,

    je rencontre un problème lors de la compilation, alors voici ma requête:
    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
    CREATE OR REPLACE PACKAGE SYS.PKG_TEST AS
    PROCEDURE PS_LISTE_COMMANDES(
            xCodePrel                   IN VARCHAR2,
     
            wCurCommande          OUT T_CURSOR
          )
        IS
        BEGIN
            DECLARE
            -- Variables
            vSQL_ERREUR VARCHAR2(500) := null;      -- Utilisé pour enregistrer les erreurs SQL dans la base
            vRequete LONG;                          -- Requete utilisee comme curseur
            vCurComm T_CURSOR;                    -- Curseur de liste des commandes
     
            BEGIN 
            -- Requete contenant les commandes        
            vRequete := 'SELECT ROWNUM AS "NumCommande", VCLIENTS.NOM as "NomClient", VAGRICULTEURS.NOM ||'' ''|| VAGRICULTEURS.PRENOM as "NomAgri", VAGRICULTEURS.PRENOM as "PrenomAgri", VAGRICULTEURS.CP as "CPAgri", VAGRICULTEURS.VILLE as "VilleAgri", NBPRELEVEMENT as "NbPrelevement", OPRELEVEURS.CP as "CPPrel", DATEPLANIFICATION as "DatePlanification", DATEREALISATION as "DateRealisation"
                         FROM VCLIENTS INNER JOIN VAGRICULTEURS ON VCLIENTS.IDCLIENT=VAGRICULTEURS.IDCLIENT
                         INNER JOIN VCOMMANDES ON VAGRICULTEURS.IDAGRICULTEUR=VCOMMANDES.IDAGRICULTEUR
                         INNER JOIN OPRELEVEURS ON VCOMMANDES.CODEPREL=OPRELEVEURS.CODEPREL
                         WHERE CODEPREL='''|| xCodePrel ||'''';
     
            -- On ouvre le curseur
            OPEN vCurComm FOR vRequete;
     
            -- Curseur OUT
            wCurCommande := vCurComm;
     
            EXCEPTION
              WHEN OTHERS
              THEN
                vSQL_ERREUR := SQLCODE ||':'|| SQLERRM;
                insert into wtrace_erreur_sql values (sysdate, xCodePrel, vSQL_ERREUR, '3', 'PS_LISTE_COMMANDES', null);
            END;
     
        END;
    END PKG_TEST;
    /
    l'erreur retourné par Oracle est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PLS-00103: Symbole "BEGIN" rencontré à la place d'un des symboles suivants :
     
       language
    j'ai fais quelques recherches, mais je n'ai rien trouvé, je ne sais pas si l'erreur vient de ma procédure ou de la façon dont je procède pour la faire...

    s'il vous plait, aidez moi, je suis en galère

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 347
    Points : 203
    Points
    203
    Par défaut
    excusez moi,

    je donne plus de précision sur l'erreur,
    visiblement, ça vient du premier BEGIN juste après le IS...

  3. #3
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faut utiliser CREATE PACKAGE pour déclarer les procédures et CREATE PACKAGE BODY pour déclarer le code associé.
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2006, 10h46
  2. Réponses: 4
    Dernier message: 21/02/2006, 16h47
  3. Réponses: 1
    Dernier message: 26/05/2005, 12h24
  4. message d'erreur lors de la création de la base
    Par ber_jp dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/05/2004, 12h15
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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