problème de format de date - Java - Programmation
Marsh Posté le 31-03-2004 à 13:44:59
Bin si tu utilises une date tu t'en fous du format hein C'est quoi le type de ton champ Oracle?
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
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 ?
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
Marsh Posté le 31-03-2004 à 13:56:40
oui je fais un INSERT INTO a la main en insérant mes variables
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 )
Marsh Posté le 31-03-2004 à 13:58:51
Salut,
tu dis qu'on peut faire autrement??? tu peux m'expliquer stp
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
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
Marsh Posté le 31-03-2004 à 14:03:44
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)
Marsh Posté le 31-03-2004 à 14:06:16
A quoi sert le "?" ? et comment tu passes tes paramètres dans ta requete
Marsh Posté le 31-03-2004 à 14:07:21
ReplyMarsh 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
Marsh Posté le 31-03-2004 à 14:11:54
lorill a écrit : |
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
Sinon hibernate, ejb, jdo & co
Marsh Posté le 31-03-2004 à 14:15:06
DarkLord 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
Marsh Posté le 31-03-2004 à 14:16:20
lorill a écrit : |
ah ok . J'avais la flemme de faire un exemple concret (genre "VALUES ('"+valeur1+"', "....
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
Marsh Posté le 31-03-2004 à 14:39:44
Tu fais un truc du genre:
Code :
|
Ca fait longtemps que j'ai pas fait de JDBC et de SQL mais l'idée est donnée là
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"
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
Marsh Posté le 31-03-2004 à 15:05:20
setDate(new java.sql.Date(java.util.Date))
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))
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 !
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
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.
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
Marsh Posté le 31-03-2004 à 16:31:38
ReplyMarsh Posté le 31-03-2004 à 16:40:14
the real moins moins a écrit : ET SINON TU SUCES |
Fait gaffe, ta seve monte
Marsh Posté le 31-03-2004 à 23:12:05
lapartdombre a écrit : ESt ce que tu pourrais me donner un exempla avec comme variable |
y a quand même du foutage de gueule là ...
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