Bonjour,
J'ai une requete que j'avais construit au départ en chaines de caracteres mais ca me pose des problemes pour les floats (, ou .) avec les différentes configurations settings quand on passe d'un serveur anglais à francais.
...donc c'est pas grve je me dis je vais faire ca bien propre avec des parametres pour ma requete mais je tombe tjours sur cette erreur:
System.Data.OracleClient.OracleException:
ORA-01036: illegal variable name/number
Le début de ma requete est classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 OracleConnection _connection = new OracleConnection(ConfigurationSettings.AppSettings["ConnectString"]); _connection.Open(); OracleCommand _command = new OracleCommand(); _command.Connection = _connection; _command.CommandText = "INSERT INTO kpi_main_page(box,grid,line,last_updated) values(@box, @grid, @line, @last_updated)";
Ma solution 1 qui plante:
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 OracleParameter _param; _param = new OracleParameter("@box",OracleType.Number); _param.Value = 6; _command.Parameters.Add(_param); _param = new OracleParameter("@grid",OracleType.Number); _param.Value = 7; _command.Parameters.Add(_param); _param = new OracleParameter("@line",OracleType.Number); _param.Value = 8; _command.Parameters.Add(_param); _param = new OracleParameter("@last_updated",OracleType.VarChar,15); _param.Value = "201099"; _command.Parameters.Add(_param); _command.ExecuteNonQuery(); /*** PLANTAGE ORA-01036 ***/ ...
Ma solution 2: (qui ne marche pas mieux)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 _command.Parameters.Add("@box", 8); _command.Parameters.Add("@grid", 8); _command.Parameters.Add("@line", 8 ); _command.Parameters.Add("@last_updated", "8" ); _command.ExecuteNonQuery(); /*** PLANTAGE ORA-01036 ***/ ...
J'ai reduit ma requete a ces quatres champs car ils constituent a eux quatre ma clef primaire.
Type des données sous Oracle:
Box -> NUMBER, longueur 3
Grid -> NUMBER, longueur 3
Line-> NUMBER, longueur 3
last_updated-> VARCHAR2, longueur 15
Enfin si je lance directement dans oracle une requete du genre INSERT INTO kpi_main_page(box,grid,line,last_updated) values( 98, 99, 99, '200501') ca marche nickel !
Avez vous une piste pour m'aider je ne vois pas ou je fais une erreur !?
Merci d'avance pour votre aide
Gaël
Partager