576 messaggi dal 30 aprile 2003
Ciao a tutti
Devo eseguire delle query utilizzando dei campi numerici (tipo NUMBER di Oracle)

Il mio codice è del tipo:
"UPDATE myTab SET myNum = TO_NUMBER('" + Request["myNum"] + ")";

dove Request["myNum"] è un numero decimale, e ottengo l'errore --> ORA-01722: invalid number

La cosa strana è che se eseguo la stessa query, con lo stesso valore di ritorno, da SQLPlus (o qualche altro DB tool) viene eseguita correttamente.
C'è qualcosa che mi sfugge?

Ho anche provato Convert.ToDouble(Request["myField"]) ma non funziona comunque.

Grazie...

Prima o poi diventerò un guru!
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

Quando fai le query, usa i parametri e non scrivere l'sql direttamente.
oledbcommand cmd = new oledbcommand("UPDATE myTab SET myNum = TO_NUMBER(?)", conn);
cmd.parameters.add("param").value = Request["myNum"];
cmd.executenonquery.

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
576 messaggi dal 30 aprile 2003
Ciao,
ho provato qualcosa del genere:
OracleParameter parMyNum = new OracleParameter();
parMyNum = da.UpdateCommand.Parameters.Add("@parMyNum", OracleType.Number);
da.UpdateCommand.Parameters["@parMyNum"].Value = Request["myNum"];

dopodiché nella mia query ho scritto SET myNum = @parMyNum
ma ottengo l'errore "ORA-01036: illegal variable name/number".

P.S. sto usando C# con database Oracle
Modificato da aletheia il 11 maggio 2006 13.21 -

Prima o poi diventerò un guru!
576 messaggi dal 30 aprile 2003
Ho provato anche il Command al posto dell'UpdateCommand, ma l'errore è sempre lo stesso...

Prima o poi diventerò un guru!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.