Greetings to the good people on the Internet :)
I have a string value of "1.5", which after Convert.ToDecimal () ends as 1.5M when viewing it in the debugger. So far so good, I think. The decimal value is then passed to the stored procedure call inside the data set. The type of parameter that interests me is defined as NUMBER (7.2) in the database, so it should contain numbers that have numbers after the decimal separator.
The problem is that somewhere along the line, the decimal value loses its separator and joins the precision with a scale making up a completely new number, as indicated in the header of this message. I even tried to set the assembly of Precision and Scale parameters inside the parameters in that the call to the stored procedure corresponded to DB (7.2), but that did not help either.
Do you have any ideas what might happen here?
EDIT:
Here is the code that calls the stored proc:
CaseFactory.UtilsAdapter.SetCaseAction(DefId, action, doneBy, assignedTo, comment, status, searchStatus, priority, access, relStatus, relStatusFixKit, totalhrs, out Common.RETURN_CODE, out Common.RETURN_TEXT);
=> SetCaseAction simply calls the stored procedure in the database using the DataSet mechanics. 'totalhrs' is the pair that interests me, it is the decimal 1.5M at this point. I also checked NLS_NUMERIC_CHARACTERS in Oracle and they are set to ','
Therefore, it uses a comma for decimal places and spaces for thousands. I donβt see anything unusual. It can only be strange that "1.5" ends as "1.5M" with a dot inside after ToDecimal (), which may be interpreted incorrectly. However, it seems unlikely because the regional settings on my server use "," as a decimal separator if .NET does not use some other settings? Really confused.