sql >> Databáze >  >> RDS >> Oracle

jak mohu z parametru jako varchar2 v oracle

Není méně než 10 přetížení kódu OracleParameterCollection.Add metoda. Zdá se, že jste omylem zavolali nesprávnému.

Věřím, že ten, který chcete, je Add(string, OracleDbType, int, object, ParameterDirection) , v takovém případě vám pouze chybí hodnota pro object parametr. Tento parametr by měl obsahovat počáteční hodnotu parametru Oracle, který používáte. Ve vašem případě však na počáteční hodnotě nezáleží, protože je out parametr. Přidejte null po 50 a vaše volání uložené procedury by mělo být úspěšné.

Volali jste Add(string, OracleDbType, object, ParameterDirection) . Velikost 50 byla interpretována jako počáteční hodnota parametru. Nejsem si jistý, jak interpretovat chybu, kterou Oracle vrací ("numerická nebo hodnotová chyba") – to mi znamená, že se Oracle pokusil převést řetězec na číslo a selhal. Možná hodnota 50 přepíše typ OracleDbType.Varchar2 a tak Oracle očekává spíše číslo než řetězec?

Nalezl jsem ještě několik dalších problémů:

  • Měl by command.Parameters["SP_REQ_NUM"] být command.Parameters["SP_NUM"] ?
  • Uložená procedura nevrací číslo; volání Convert.ToInt32 na řetězec, jako je 201405 001 selže.



  1. Jak extrahovat hodnoty ze sloupce a aktualizovat výsledek v jiném sloupci

  2. python se připojte k postgresql pomocí libpq-pgpass

  3. Jaký je nejlepší způsob šifrování/dešifrování řetězce json

  4. Streamování přímo do databáze