Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2006, 13h38   #1
Inscrit
 
Inscription : avril 2004
Messages : 179
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 179
Points : 46
Points : 46
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 :
Citation:
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 :
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;
Herveg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 13h45   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Remplace :
par
Code :
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.
__________________
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.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 13h48   #3
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 533
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 533
Points : 6 469
Points : 6 469
Ou alors, faites correspondre les formats date entre Forms et la BDD avec un trigger de niveau form : PRE-FORM:

Code :
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''');
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 13h57   #4
Inscrit
 
Inscription : avril 2004
Messages : 179
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 179
Points : 46
Points : 46
ca marche impecable !

merci de votre aide
Herveg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 14h29   #5
Inscrit
 
Inscription : avril 2004
Messages : 179
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 179
Points : 46
Points : 46
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!
Herveg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h08.


 
 
 
 
Partenaires

Hébergement Web