Bonjour,

Dans une requête insert, depuis C#, j'essaye d'enregistrer un repère temporel, sous la forme date + temps, dans une base de données Oracle, sous un champ de type DATE.


Après 2 / 3 heures de recherche sur internet, J'ai essayé de faire ma requête de la manière suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11

string requete = " INSERT INTO NOM_TABLE (Champs1, Champs2, ..., Champs_Date, ...) VALUES (" + Value1 + "," + Value2 + "," + ... + ToOracleSqlDate(System.DateTime.Now) + ... + ")";


....

 public string ToOracleSqlDate(DateTime dateTime)
        {
            return String.Format("to_date('{0}','dd.mm.yyyy hh24.mi.ss')", dateTime.ToString("dd.MM.yyyy hh:mm:ss"));
        }
A l’exécution, j'obtiens l'erreur "ORA-1858: Caractère non numérique trouvé à la place d'un caractère numérique"

et

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3

string requete = " INSERT INTO NOM_TABLE (Champs1, Champs2, ..., Champs_Date, ...) VALUES (" + Value1 + "," + Value2 + "," + ... + System.DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss") + ... + ")";
Me revoir l'erreur "ORA-1830: Le modèle du format de date se termine avant la conversion de la chaîne d'entrée entière"


Je ne comprends pas pourquoi j'ai ces erreurs.

Que dois-je faire pour arriver à mes fins ?

[EDIT]

Il m'avait semblé que ça n'avait pas marché avant, mais maintenant ça fonctionne avec

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4


string requete = " INSERT INTO NOM_TABLE (Champs1, Champs2, ..., Champs_Date, ...) VALUES (" + Value1 + "," + Value2 + "," + ... + System.DateTime.Now + ... + ")";
Je me demande si c'est moi qui n’avait pas les yeux en face des trous (pebkac) ou si c'était autre chose.

[/edit]