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 Oracle Discussion :

Problème procédure stockée


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Problème procédure stockée
    Bonjour à tous,

    J'ai probleme au niveau d'oracle sur une procédure.En effet je créé un programme de gestion et cette procédure sert à créer des utilisateurs.
    le seul problème est que lorsque je créé cette procedure j'ai message qui me dit "erreur de compilation", mais je ne vois pas où se trouve ma faute dans mon code. merci d'avance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE PROCEDURE CreateUser (
    		@nom varchar(20) ,
    		@mdp varchar(20)
    ) AS BEGIN	
    CREATE USER @nom IDENTIFIED BY @mdp
    END
    explication du code:
    - je rentre en parametres les deux attributs nécessaires, le nom et le mot de passe.
    - je lance la céation de l'utilisateur.
    - et c'est tout.
    voila.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Vous êtes sûr qu'il s'agit de PL/SQL ?
    On dirait du code pour une base SQL Server...

    Attention à bien respecter les règles du forum en indiquant les versions de vos outils et en particulier celle de la base.

    [EDIT]
    Sous Oracle, votre procédure devrait ressembler à quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE PROCEDURE CREATEUSER(PC_nom  varchar2, PC_mdp  varchar2) IS
    BEGIN
      EXECUTE IMMEDIATE 'CREATE USER :1 IDENTIFIED BY :2' USING PC_nom, PC_mdp;
    END;
    [/EDIT]
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Et pour voir les erreur de compilation faites un show err après la création de votre procédure.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bon la procédure n'a plus de problèmes de compilation, mais un autre c'est révélé. En effet quand j'execute la procédure avec les paramêtres qui vont bien, j'ai une erreur de ce type:
    - nom de rôle ou d'utilisateur absent.

    je em retrouve encore dans l'impasse car j'avais opté de passer par une procedure pour creer un utilisateur car sous vb, il me mettait la meme erreur je comence à désesperer. Parcontre je pense que c'est à cause des paramètres car en mettant directement cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE OR REPLACE PROCEDURE CREATEUSER(PC_nom  varchar2, PC_mdp  varchar2) IS
    BEGIN
      EXECUTE IMMEDIATE 'CREATE USER PC_nom IDENTIFIED BY PC_mdp';
    END;
    je créé un utilsateur PC_nom.
    Bref je continue mes recherches.

  5. #5
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE PROCEDURE CREATEUSER(PC_nom  varchar2, PC_mdp  varchar2) IS
    BEGIN
      EXECUTE IMMEDIATE 'CREATE USER ' || PC_nom || ' IDENTIFIED BY ' || PC_mdp;
    END;
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    erreur de compilation...
    enfin je cherche toujours merci quand même.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par toomsbzh
    erreur de compilation...
    laquelle ?
    Merci de nous indiquer le code et le libellé de l'erreur si c'est une erreur oracle.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    voici l'erreur qu'il me met:

    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
     
    SQL> CREATE OR REPLACE PROCEDURE CREATEUSER(PC_nom  varchar2, PC_mdp  varchar2) IS
      2  BEGIN
      3    EXECUTE IMMEDIATE 'CREATE USER ' || PC_nom ' IDENTIFIED BY ' || PC_mdp;
      4  END;
      5  /
     
    Attention : Procédure créée avec erreurs de compilation.
     
    SQL> show err
    Erreurs pour PROCEDURE CREATEUSER :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    3/46     PLS-00103: Symbole " IDENTIFIED BY " rencontré à la place d'un
             des symboles suivants :
             . ( * @ % & = - + ; < / > at in mod not rem return returning
             <an exponent (**)> <> or != or ~= >= <= <> and or like
             between into using is null is not || is dangling
             Symbole "." a été substitué à " IDENTIFIED BY " pour continuer.

  9. #9
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    J'ai corrigé mon précédent post, j'avais oublié || avant identified by
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup ca marche impecable maintenant.
    Le truc qui m'a fait marrer c'est que j'ai essayé aussi la concaténation, je croyais avoir fait comme vous mais apparemment non.
    Dans tous les cas merci beaucoup.
    vous etes des kings.


    ps: ca serait pas mal si on pouvait mettre ce code en tuto, comme ca les peronnes dans mon cas pourront le trouver facilement.

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

Discussions similaires

  1. Problème Procédure stockée
    Par mischa dans le forum C#
    Réponses: 1
    Dernier message: 07/06/2007, 15h24
  2. Problème procédure Stockée + VBS
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/02/2007, 16h39
  3. Réponses: 2
    Dernier message: 20/09/2006, 14h38
  4. problème procédure stockée
    Par hamham dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 19/04/2006, 12h33
  5. Problème procédure stockée + trie
    Par an_merle dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/02/2006, 22h58

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