problème de format de date

problème de format de date - Java - Programmation

Marsh Posté le 31-03-2004 à 13:40:20    

Je cherche à insérer à partir d'un programme java des dates dans une table Oracle.
 
Mon format de date du départ est
 
  Wed Mar 31 13:33:45 CEST 2004
 
et je dois avoir comme format pour pouvoir le rentrer dans ma table
 
  01-janv.-1999 10:30:00 AM
 
Pour convertir ma chaine en string, j'utilise comme fonction
 
public static Date stringToDate(String sDate, String sFormat) throws Exception  
{
SimpleDateFormat sdf = new SimpleDateFormat(sFormat);
return sdf.parse(sDate);
}  
 

 
en spécifiant comme format "dd-MMMM-yyyy HH:mm:ss aa"
 
Mais Oracle refuse de m'entrer mes données avec comme messages d'erreur  
ORA-01858: a non-numeric character was found where a numeric was expected
 
 
Si vous pouvez me donner un coup de main ce serait très gentil

Reply

Marsh Posté le 31-03-2004 à 13:40:20   

Reply

Marsh Posté le 31-03-2004 à 13:44:59    

Bin si tu utilises une date tu t'en fous du format hein :D C'est quoi le type de ton champ Oracle?

Reply

Marsh Posté le 31-03-2004 à 13:50:26    

le type de mon champ sous oracle est  Date
 
mais quand je cherche à insérer ma date dans ma table j'ai comme message d'erreur  ORA-01858: a non-numeric character was found where a numeric was expected  et je ne vois pas d'on vient le probleme

Reply

Marsh Posté le 31-03-2004 à 13:52:08    

Si le champ de ta table est de type Date alors tu devrais (normalement) utiliser une méthode setDate(date) pour réaliser ce que tu veux faire. Tu fais bien du JDBC pour faire ton insertion ?

Reply

Marsh Posté le 31-03-2004 à 13:54:40    

oui pour l'insertion je fais du JDBC mais je n'ai pas fait un set Date je vais essayer

Reply

Marsh Posté le 31-03-2004 à 13:55:39    

tu fais quoi "INSERT INTO" a la main ou quoi?

Reply

Marsh Posté le 31-03-2004 à 13:56:40    

oui je fais un INSERT INTO a la main en insérant mes variables

Reply

Marsh Posté le 31-03-2004 à 13:57:56    

DarkLord a écrit :

tu fais quoi "INSERT INTO" a la main ou quoi?


on peut faire autrement ?
(bonjour, je m'appelle lorill et je débarque :o)

Reply

Marsh Posté le 31-03-2004 à 13:58:45    

PreparedStatement [:kiki]

Reply

Marsh Posté le 31-03-2004 à 13:58:51    

Salut,
 
tu dis qu'on peut faire autrement??? tu peux m'expliquer stp

Reply

Marsh Posté le 31-03-2004 à 13:58:51   

Reply

Marsh Posté le 31-03-2004 à 14:00:35    

avec getDate tu n'as en retour que le jour de ta date et non toute la date.
A quoi sert prepareStatement

Reply

Marsh Posté le 31-03-2004 à 14:02:10    

http://java.sun.com/j2se/1.4.2/doc [...] ement.html
 
Permet d'exécuter ds requêtes paramétrées


Message édité par machinbidule1974 le 31-03-2004 à 14:03:36
Reply

Marsh Posté le 31-03-2004 à 14:03:44    

:sweat:
http://java.sun.com/j2se/1.4.2/doc [...] ml#1000039
 
En gros tu définis le squelette de ta query et tu remplaces les paramètres avec les valeurs que tu veux. Et ca fait toutes les conversions pour toi (+ caching)

Reply

Marsh Posté le 31-03-2004 à 14:06:16    

A quoi sert le "?"  ? et comment tu passes tes paramètres dans ta requete

Reply

Marsh Posté le 31-03-2004 à 14:07:21    

DarkLord a écrit :

PreparedStatement [:kiki]


ouais, ben ca reste un insert into a la main pour moi hein :o

Reply

Marsh Posté le 31-03-2004 à 14:08:50    

lapartdombre a écrit :

A quoi sert le "?"  ? et comment tu passes tes paramètres dans ta requete


 
Lis le tutorial posté par DarkLord

Reply

Marsh Posté le 31-03-2004 à 14:11:54    

lorill a écrit :


ouais, ben ca reste un insert into a la main pour moi hein :o


 
:heink: Si tu trouves que devoir te taper la conversion des types vers des types SQL et compagnie c'est la meme chose, tant mieux pour toi :o
 
Sinon hibernate, ejb, jdo & co :o

Reply

Marsh Posté le 31-03-2004 à 14:15:06    

DarkLord a écrit :


:heink: Si tu trouves que devoir te taper la conversion des types vers des types SQL et compagnie c'est la meme chose, tant mieux pour toi :o


nan, ce que je voulais dire, c'est que les preparedstatement, je connais (encore heureux tu me diras), mais y'a quand même un INSERT INTO a la main dans le code  [:sinclaire]

Reply

Marsh Posté le 31-03-2004 à 14:16:20    

lorill a écrit :


nan, ce que je voulais dire, c'est que les preparedstatement, je connais (encore heureux tu me diras), mais y'a quand même un INSERT INTO a la main dans le code  [:sinclaire]  


 
ah ok [:joce]. J'avais la flemme de faire un exemple concret (genre "VALUES ('"+valeur1+"', "....

Reply

Marsh Posté le 31-03-2004 à 14:29:36    

j'ai du mal à comprendre vraiment la syntaxe. Comment je fais pour insérer ma variable d ( format Date) par exemple dans la table t avec prepareStatement

Reply

Marsh Posté le 31-03-2004 à 14:39:44    

Tu fais un truc du genre:
 

Code :
  1. Connection connection = ... ;
  2. PreparedStatement pstmt = connection.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?" );
  3. pstmt.setDate(1, taDate);
  4. pstmt.execute();


 
Ca fait longtemps que j'ai pas fait de JDBC et de SQL mais l'idée est donnée là

Reply

Marsh Posté le 31-03-2004 à 14:46:49    

[C'est ce que je fais. Voici mon programme
 
String query2="insert into BASEQ.TEST_PLANNING  (PLA_CAL,PLA_CF,PLA_CODE,PLA_FICH,PLA_HOR,PLA_MSG,PLA_NBTAC,PLA_PRIORITY,PLA_SRV_CPU,PLA_UNTIL)  values (?,?,?,?,?,?,?,?,?,?)";
PreparedStatement statement = connection.prepareStatement(query2);
statement.setString(1, on);
statement.setString(2,carryForward);  
statement.setString(3, scheduleName);  
statement.setString(4, opens);  
statement.setDate(5, at);  
statement.setString(6, prompt);  
statement.setLong(7, limit);  
statement.setLong(8, priority);  
statement.setString(9, cpuName);  
statement.setDate(10, until);  
 
 
 
Et j'ai comme erreur
 
 
 
java.lang.Error: Unresolved compilation problems:  
 The method setDate(int, java.sql.Date) in the type java.sql.PreparedStatement is not applicable for the arguments (int, java.util.Date)
 The method setDate(int, java.sql.Date) in the type java.sql.PreparedStatement is not applicable for the arguments (int, java.util.Date)
 
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
 at Traitement.genereFichierSchedule(Traitement.java:1024)
 at Traitement.main(Traitement.java:1422)
Exception in thread "main"  
       

Reply

Marsh Posté le 31-03-2004 à 14:47:50    

il veut un java.sql.Date, tu lui file un java.util.Date, alors forcément, il boude [:spamafote]

Reply

Marsh Posté le 31-03-2004 à 14:53:45    

ok merci

Reply

Marsh Posté le 31-03-2004 à 15:03:09    

comment faire pour intialiser un java.sql.Date

Reply

Marsh Posté le 31-03-2004 à 15:05:20    

setDate(new java.sql.Date(java.util.Date))


Message édité par machinbidule1974 le 31-03-2004 à 15:06:57
Reply

Marsh Posté le 31-03-2004 à 15:06:13    

Merci beaucoup

Reply

Marsh Posté le 31-03-2004 à 15:11:41    

J'ai encore un petit problème. Je crois que je suis un peu fatiguée. Je n'arrive pas à initialiser ma variable avec setDate(new java.sql.Date(java.util.Date))

Reply

Marsh Posté le 31-03-2004 à 15:34:31    

L'argument que tu dois passer au constructeur de la classe java.sql.Date, c'est ta variable de type java.util.Date et de nom "at". Le code "setDate(new java.sql.Date(java.util.Date))" tel quel ne peut pas fonctionner !

Reply

Marsh Posté le 31-03-2004 à 15:48:50    

Je crois qu'il faudrait vraiment que j'aille me coucher car j'ai de plus en plus de mal. ESt ce que tu pourrais me donner un exempla avec comme variable
java.util.Date at;
java.sql.Date at2;
 
Merci beaucoup beaucoup

Reply

Marsh Posté le 31-03-2004 à 15:51:11    

va te coucher. C'est plus de l'aide qu'on est en train de filer. On est en train de faire le truc pour toi et ca va rien t'apprendre.

Reply

Marsh Posté le 31-03-2004 à 15:52:43    

je voudrai bien aller me coucher mais je ne peux pas. Je suis en stage et je ne finis qu'à 18h. Comme je suis bloquée je ne peux pas vraiment avancer sinon je ne demanderai pas de l'aide

Reply

Marsh Posté le 31-03-2004 à 15:54:43    

Reply

Marsh Posté le 31-03-2004 à 16:08:22    

Sniff !!!!!!!!!!!!

Reply

Marsh Posté le 31-03-2004 à 16:31:38    

ET SINON TU SUCES [:autobot]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 31-03-2004 à 16:33:40    

[:mlc2]


---------------
IVG en france
Reply

Marsh Posté le 31-03-2004 à 16:40:14    


 
Fait gaffe, ta seve monte [:iorili]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 31-03-2004 à 16:40:45    

[:rofl]

Reply

Marsh Posté le 31-03-2004 à 16:42:07    

[:serial coder]

Reply

Marsh Posté le 31-03-2004 à 23:12:05    

lapartdombre a écrit :

ESt ce que tu pourrais me donner un exempla avec comme variable
java.util.Date at;
java.sql.Date at2;


 [:wam]  
 
y a quand même du foutage de gueule là ...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed