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 :

procedure probleme oracle


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut procedure probleme oracle
    bonjour,

    lorsque j'exécute cette procédure ma table compta est vide.... j ai trouvé l'erreur (oracle ou la variable n'aiment pas cette ligne NumPieceEspCM := '00' || '52P' || '1'; il suffit de changer la lettre P par un nombre n'importe le quel et alors ma table compta a bien une ligne)

    Pouvez vous m'expliquer pourquoi???
    Comment faire pour utiliser NumPieceEspCM decrit ici en haut?


    Merci d'avance
    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
    ********************************************
     
    CREATE OR REPLACE Procedure COMPTA_exemple
     IS
     
        s_sql    VARCHAR2(1000);
     
        NumDossier   varchar2(4) :='0103';
        NumPieceEspCM   VARCHAR2(9);
        NumOrdre1		    VARCHAR2(3):='001';
     
    BEGIN
     
    NumPieceEspCM 	:= '00' || '52P' || '1';
     
    s_sql := 'DROP TABLE COMPTA';
    EXECUTE IMMEDIATE s_sql;
     
     
     
    s_sql := 'CREATE TABLE COMPTA (  NumDossier		CHAR(4), NumPieceComptable	CHAR(9), NumOrdre		CHAR(3))';
    EXECUTE IMMEDIATE s_sql;
     
     
    s_sql :='INSERT INTO  COMPTA  VALUES  (' || NumDossier ||','|| NumPieceEspCM ||','||NumOrdre1 || ')';  
     EXECUTE IMMEDIATE s_sql;                
     
     EXCEPTION
       -- ORA-00942: table or view does not exist
       WHEN OTHERS THEN
           NULL;
    END COMPTA_exemple;

  2. #2
    Invité
    Invité(e)
    Par défaut
    Quel est donc ce mystérieux message d'erreur dont tu nous parles?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Par défaut
    je ne vois pas de message d'erreur..justement!!

    si j'utilise NumPieceEspCM := '00' || '52P' || '1';
    ma procedure ne genere aucune ligne ... j'ai un probleme avec la "P"
    vu que si je utlise NumPieceEspCM := '00' || '522' || '1';
    alors la ça foctionne....!!!!

    Quel est le probleme?

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok, je vois. Ça doit être un problème de conversion de type.
    Vous manipulez, parfois, des nombres que vous insérez dans du texte.

    Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s_sql :='INSERT INTO COMPTA VALUES (''' || NumDossier ||''','''|| NumPieceEspCM ||''','||NumOrdre1 || ')';
    De cette façon vous traitez tout comme des chaines de caractères et vous vous épargnez les erreurs de conversion automatique.

    De plus, gérez votre gestion d'erreur correctement de façon, justement à voir les erreurs...
    Ceci est idiot : la preuve, vous auriez le message d'erreur, vous auriez perdu moins de temps.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    EXCEPTION
    WHEN OTHERS THEN
    NULL;
    ps: merci d'utiliser la balise code

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    La première règle quand on utilise un EXECUTE IMMEDIATE en test ou en débug : Afficher la requête qui va être exécutée (par DBMS_OUTPUT.PUT_LINE)

  6. #6
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Et pourquoi faire un insert en SQL DYNAMIQUE ???

Discussions similaires

  1. Réponses: 11
    Dernier message: 15/11/2006, 16h52
  2. [JDBC] Problème Oracle/JDBC
    Par vargass dans le forum JDBC
    Réponses: 3
    Dernier message: 26/04/2006, 15h01
  3. Réponses: 1
    Dernier message: 31/01/2006, 17h38
  4. Executer un procedure d'oracle sous unix
    Par claralavraie dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 31/01/2006, 17h34
  5. Probleme Oracle + Procedure Stockee
    Par ForumWWW dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/07/2004, 16h00

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