Er zijn maar liefst 10 overbelastingen van de OracleParameterCollection.Add
methode. Het lijkt erop dat je per ongeluk de verkeerde hebt gebeld.
Ik denk dat degene die je wilt is Add(string, OracleDbType, int, object, ParameterDirection)
, in welk geval je gewoon een waarde mist voor het object
parameter. Deze parameter moet een beginwaarde bevatten voor de Oracle-parameter die u gebruikt. In jouw geval maakt de initiële waarde echter niet uit, want het is een out
parameter. Voeg null
toe na 50
en uw opgeslagen procedure-aanroep zou moeten slagen.
Degene die je hebt gebeld is Add(string, OracleDbType, object, ParameterDirection)
. De maat 50
is geïnterpreteerd als een initiële waarde voor de parameter. Ik weet niet zeker hoe ik de fout moet interpreteren die Oracle retourneert ("numerieke of waardefout") - dat impliceert voor mij dat Oracle heeft geprobeerd een string naar een getal te converteren en is mislukt. Misschien de waarde 50
overschrijft het type OracleDbType.Varchar2
en dus verwacht Oracle een getal in plaats van een string?
Er waren nog een paar problemen die ik vond:
- Moet
command.Parameters["SP_REQ_NUM"]
becommand.Parameters["SP_NUM"]
? - Uw opgeslagen procedure retourneert geen nummer;
Convert.ToInt32
. aanroepen op een string zoals201405 001
zal mislukken.