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

Sql*Plus Oracle Discussion :

Problème au niveau d'unité de programme


Sujet :

Sql*Plus Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut Problème au niveau d'unité de programme
    Bonjour à tous
    J'ai problème au niveau de mon unité de programme
    Au niveau de mon formulaire CONNEXION , j'ai crée un fonction MSGBOX dans l'unité de programme (Fonction avec non : MSGBOX) que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FUNCTION MSGBOX (p_alert_id IN VARCHAR2,
                    P_msg_text IN VARCHAR2) ;
    RETURN NUMBER 
    IS
      Al_button NUMBER; 
    BEGIN 
      SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text); 
      Al_button := SHOW_ALERT (p_alert_id);
      RETURN (al_button);
    END;
    Et après compilation j'ai le message suivant :
    PDE-PPU017 L'unité de programme source doit définir un corps ou package sous programme.
    Avec bouton OK


    J'aimerais savoir mon erreur et comment faire pour le resoudre .
    Merci à vous.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Bonjour,

    cela marchera mieux comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE FUNCTION MSGBOX(p_alert_id IN VARCHAR2, P_msg_text IN VARCHAR2) 
    RETURN NUMBER
    IS
    Al_button NUMBER;
    BEGIN
    SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text);
    Al_button := SHOW_ALERT (p_alert_id);
    RETURN (al_button);
    END;
    /
    PS : Penses au balises
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Bonjour
    J'ai pas encore de bon resultat .
    Je rappel que ma fonction c'est dans l'unityé de programme au niveau formulaire que je l'ecrit.Or vous m'avez donnez un create or replace function , c'est dire que je dois l'executer dans la base de donnée.
    Lorsuqe je la met ds la BD j'ai comme resultat:
    Erreur à la ligne 1
    ORA-00955 : Ce nom d'objet existe déja

    Comment voyez vous cela
    Est t'il possible d'utiliser le create or replace fonction dans l'unité de programme?
    Merci bien pour votre attention
    .

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Je tiens a dire que j'ai essayer d'ecrire la nouvelle fonction que vous m'avez demamndé dans l'unité de programme .
    J'obtient toujours le mème message :
    PDE-PPUO17 l'unité de programme source doit definir un corps ou package sous programme .
    Cette erreur à quoi est t'elle du ?
    J'attend encore de lire votre espertise .
    Merci beaucoup .

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    C'est pas du Forms ?

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    J'ai toujours pas résolu mon problème .
    Lorsque je veux créer cette fonction dans la BD
    J'ai : Erreur à la ligne 1
    ORA-0955:ce nom d'objet exixte deja .

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bayoro Voir le message
    J'ai toujours pas résolu mon problème .
    Lorsque je veux créer cette fonction dans la BD
    J'ai : Erreur à la ligne 1
    ORA-0955:ce nom d'objet exixte deja .
    que donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from all_objects where object_name = upper('Nom_de_ta_fonction') ;

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par orafrance Voir le message
    C'est pas du Forms ?
    Entièrement d'accord avec toi.
    Il faut la créer dans forms.

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Bonsoir
    Je voudrais savoir que signifie :
    PDE-PPU017 L'unité de programme source doit définir un corps ou package sous programme.

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    SELECT * FROM all_objects WHERE object_name = upper('Nom_de_ta_fonction') ;
    L'execution de cette instruction me donne :

    OWNER OBJECT_NAME
    ------------------------------ ------------------------------
    SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE
    ------------------------------ ---------- -------------- ------------------
    CREATED LAST_DDL TIMESTAMP STATUS T G S
    -------- -------- ------------------- ------- - - -
    LOG MSGBOX
    32387 PROCEDURE
    30/03/08 30/03/08 2008-03-30:21:30:00 INVALID N N N

  11. #11
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Citation Envoyé par Bayoro Voir le message
    Bonsoir
    Je voudrais savoir que signifie :
    PDE-PPU017 L'unité de programme source doit définir un corps ou package sous programme.
    PDE-PPU017: The program unit source must define a Subprogram Body or Package.

    Cause: If you delete keyword PROCEDURE, FUNCTION in plsql editor .

    Action: A program unit MUST begin with one of the following keywords:

    PROCEDURE
    FUNCTION
    PACKAGE
    drop ta procedure sous sql*plus et recrée dans forms
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    VINCEZO
    J'ai supprimé la fonction dans la BD , puis je l'ais repris dans la forms , mais hélas j'ai encore le mème message d'erreur :
    L'unité de programme doit definir un corps de package sous programme avec une étoile dans le nom de la fonction *MSGBOX.

    Je comprends plus rien moi mème

  13. #13
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Comment tu la crées dans forms ?

  14. #14
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Je suis allé sur le formulaire (Connexion) , puis sur unité de programme.
    Puis clic et lorsqu'on m'a demandé le nom , j'ai mis : MSGBOX , et j'ai mis ceci:


    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
    FUNCTION MSGBOX (p_alert_id IN VARCHAR2,
                    P_msg_text IN VARCHAR2) ;
    RETURN NUMBER 
    IS
      Al_button NUMBER; 
    BEGIN 
      SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text); 
      Al_button := SHOW_ALERT (p_alert_id);
      RETURN (al_button);
    END;
    FUNCTION MSGBOX (p_alert_id IN VARCHAR2,
                    P_msg_text IN VARCHAR2) ;
    RETURN NUMBER 
    IS
      Al_button NUMBER; 
    BEGIN 
      SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text); 
      Al_button := SHOW_ALERT (p_alert_id);
      RETURN (al_button);
    END;

  15. #15
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Escuse ma répétition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FUNCTION MSGBOX (p_alert_id IN VARCHAR2,
                    P_msg_text IN VARCHAR2) ;
    RETURN NUMBER 
    IS
      Al_button NUMBER; 
    BEGIN 
      SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text); 
      Al_button := SHOW_ALERT (p_alert_id);
      RETURN (al_button);
    END;

  16. #16
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,
    Enlève ; seulement.
    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    FUNCTION MSGBOX (p_alert_id IN VARCHAR2,
                    P_msg_text IN VARCHAR2) 
    RETURN NUMBER 
    IS
      Al_button NUMBER; 
    BEGIN 
      SET_ALERT_PROPERTY (p_alert_id, ALERT_MESSAGE_TEXT,p_msg_text); 
      Al_button := SHOW_ALERT (p_alert_id);
      RETURN (al_button);
    END;

  17. #17
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Je pense que je vais supprimer ce formulaire et le reprendre voir.

  18. #18
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Bonsoir à tous
    Pour finir je me suis passé de la fonction MSGBOX dans ma boite de connexion.
    J'ai juste mi Message et je compile sans erreur.
    Merci à tous et a très bientot vous ètes vraiment merveilleux et grace à vous nous le debutant sommes confiant au travail.
    merci

  19. #19
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Ok Merci Salim1 , ah oui merci bien ca marche , lorsque je compile pas de problème , merci beaucoup à tous ppour le coup de main .
    Savez comment ca fait plaisir d'avancer.
    Merrrrrrrrrrrrrrrci .

  20. #20
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 105
    Points : 48
    Points
    48
    Par défaut
    Je crois que mon problème c'étais le point virgule après les paramètres de la fonction (.
    Merci bien j'èspère revenir avec d'autre chose qui me fairons avancé et decouvrir les délices d'Oracle Forms

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/06/2010, 19h21
  2. [CSS] Problème au niveau de la résolution
    Par shukin dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 28/10/2005, 13h29
  3. [PPC][C#][SQL2000] Problème au niveau de donné controlé
    Par Roach dans le forum Windows Forms
    Réponses: 16
    Dernier message: 21/09/2005, 22h08
  4. problème au niveau de restore database
    Par Redouane dans le forum Administration
    Réponses: 2
    Dernier message: 07/09/2005, 11h49
  5. [DNS MX]Avec DynDNS.org, problème au niveau du MX
    Par Swoög dans le forum Développement
    Réponses: 9
    Dernier message: 24/08/2004, 22h00

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