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

Forms Oracle Discussion :

[oracle 9i] probleme de date


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 193
    Par défaut [oracle 9i] probleme de date
    bonjour

    j'ai des soucis avec les dates. voila j'ai un programme qui fait intervenir des dates. donc a chaque fois que je lance le programme forms runtime me dit ceci :
    ORA :01843 ce n'est pas un mois valide
    par contre si je prend ce meme programme et que je l'excute avec sqlplus directement c'est a dire sans passer par forms runtime il passe normalement.
    j'arrive pas à comprendre le problème.

    je travaille en mode client serveur avec oracle9i sous AIX et forms 6i sur les clients windows XP.

    voici mon code :

    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
    declare
    cursor c_prevu(date_debut date) is 
             select montant_du, 
             to_char(date_fin_contrat,'dd/mm/yyyy') 
                from contrats 
                where nvl(date_fin_contrat,'31/12/2050')  >=date_debut;
     
    v_montant number(10);
    v_date_fin_contrat date;
    date_debut date:=:debut;
    begin
    while date_debut<=:fin loop
    open c_prevu(date_debut);
    fetch c_prevu into v_montant,v_date_fin_contrat;
    while c_prevu%found loop
    if nvl(v_date_fin_contrat,'31/12/2050') >=date_debut
     
    then insert into echeance(mois,annee,montant_total) 
    	  values(to_char(date_debut,'DD'),
                   to_char(date_debut,'MM'),
                   v_montant);
     
    end if;
    fetch c_prevu into v_montant,v_date_fin_contrat;
    end loop;
    date_debut:=add_months(date_debut,1);
    close c_prevu;
    end loop;
    commit;
    end;

  2. #2
    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
    Par défaut
    Remplace :
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nvl(xxx,to_date('31/12/2050', 'DD/MM/RRRR'))
    '31/12/2050' est une chaîne de caractère, oracle cherche à faire une conversion en date, et il n'y arrive pas car ce n'est pas le bon format de date pour ton instance.

  3. #3
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Ou alors, faites correspondre les formats date entre Forms et la BDD avec un trigger de niveau form : PRE-FORM:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      set_application_property(PLSQL_DATE_FORMAT, 'DD/MM/RRRR');
      set_application_property(BUILTIN_DATE_FORMAT, 'DD/MM/RRRR');
      forms_ddl('ALTER SESSION SET NLS_DATE_FORMAT = ''DD/MM/RRRR''');

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 193
    Par défaut
    ca marche impecable !

    merci de votre aide

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 193
    Par défaut
    juste une petite question !

    c'est quoi la différence entre le format DD/MM/YYYY et DD/MM/RRRR

    j'avoue que je vois pas trop la différence sur les résultats qu'ils renvoient!

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

Discussions similaires

  1. [Oracle 10] Probleme de date depuis un appel VBS
    Par jnauche dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/09/2008, 16h10
  2. probleme de date sous oracle
    Par Melvine dans le forum Oracle
    Réponses: 12
    Dernier message: 26/09/2006, 15h24
  3. Probleme de date
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 19/03/2004, 14h19
  4. probleme de date (toujours et encore des dates)
    Par Yannesco dans le forum SQL
    Réponses: 3
    Dernier message: 02/02/2004, 19h04
  5. Probleme de date
    Par danuz dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/09/2003, 15h57

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