sql >> Databasteknik >  >> RDS >> Oracle

hur kan jag ut en parameter som varchar2 i oracle

Det finns inte mindre än 10 överbelastningar av OracleParameterCollection.Add metod. Det verkar som att du av misstag har ringt fel.

Jag tror att den du vill ha är Lägg till (sträng, OracleDbType, int, objekt, ParameterDirection) , i så fall saknar du bara ett värde för objektet parameter. Den här parametern bör innehålla ett initialt värde för den Oracle-parameter du använder. I ditt fall spelar dock startvärdet ingen roll eftersom det är en out parameter. Lägg till null efter 50 och ditt lagrade proceduranrop bör lyckas.

Den du har ringt är Lägg till( sträng, OracleDbType, objekt, ParameterDirection) . Storleken 50 har tolkats som ett initialt värde för parametern. Jag är inte säker på hur jag ska tolka felet som Oracle returnerar ("numeriskt eller värdefel") – det antyder för mig att Oracle har försökt konvertera en sträng till ett tal och misslyckats. Kanske värdet 50 åsidosätter typen OracleDbType.Varchar2 och så förväntar sig Oracle ett nummer snarare än en sträng?

Jag hittade ytterligare ett par problem:

  • Bör command.Parameters["SP_REQ_NUM"] vara command.Parameters["SP_NUM"] ?
  • Din lagrade procedur returnerar inte ett nummer; anropar Convert.ToInt32 på en sträng som 201405 001 kommer att misslyckas.



  1. Köra ett Data Warehouse på PostgreSQL

  2. MySQL infogar automatiskt en rad i tabell2 på en infogning till tabell1

  3. Doktrin - underfråga i från

  4. Finns det något sätt att använda DBMS_Alert för att meddela en Winform-applikation om en databasändring