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 :

PL/SQL différence entre deux dates et select into


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut PL/SQL différence entre deux dates et select into
    bonjour je dois faire une procédure pl/sql qui calcule la différence entre deux date, voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    nbjr NUMBER;
    requete VARCHAR2(2000);
     
     
    requete := 'selecte date_fin - date_debut';
    requete := requete || ' from table';
    requete := requete || ' where date_debut>=''01/01/2009''';
    requete := requete || ' where date_fin<=''31/11/2009''';
     
    execute immediate requete into nbjr;
    le problème est que cela me retourne une exception qui est la suivante
    "ORA-06502: PL/SQL : erreur numérique ou erreur sur une valeur: erreur de conversion des caractères en chiffres"

    il ne veut pas mettre la valeur retournée par la requete dans mon champ nbjr de type NUMBER

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2008
    Messages : 75
    Points : 95
    Points
    95
    Par défaut
    le probleme reside dans l'utilisation des doubles quotes.
    il faut utiliser chr(39). 39 etant le code ascii du quote utilisé dans les chaines de caracteres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    declare 
    v_nbjr NUMBER;
    v_requete VARCHAR2(2000);
    begin 
    v_requete  := 'select  date_fin - date_debut';
    v_requete := v_requete || ' from table';
    v_requete :=  v_requete || ' where date_debut>='||chr(39)||'01/01/2009'||chr(39);
    v_requete := v_requete || ' and date_fin<='||chr(39)||'31/11/2009'||chr(39);
    execute immediate requete into nbjr;
    end;

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci mais c'est bon j'ai résolu mon problème.

    il suffisait d'utiliser la syntaxe suivante sur mes champs de date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date(ma_date,'DD/MM/YYY')

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

Discussions similaires

  1. [AC-2007] Requête SQL différence entre deux date en heure
    Par sarah12 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/07/2010, 20h58
  2. Nombre de minutes de différence entre deux dates
    Par Oberown dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/05/2006, 15h41
  3. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 10h58
  4. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 12h24
  5. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 09h34

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