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

C# volání oracle uložené funkce

ORA-06550 kód, který získáte, znamená, že funkce byla zkompilována s neplatnými příkazy a je třeba ji přepsat. Nevidím nic zjevně špatného v kódu, takže můžete mít problémy, jako jsou oprávnění nebo nesprávné názvy tabulek, a měli byste zkontrolovat, zda můžete funkci spustit především v editoru PL/SQL. Potom, až to spustíte, zkuste...

var cmd = new OracleCommand();

cmd.Connection = conn;
cmd.CommandText = "ar_knyga_egzistuoja";
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("id", id);
cmd.Parameters.Add("kiekis", OracleType.Number);
cmd.Parmeters["kiekis"].Direction = ParameterDirection.ReturnValue;

cmd.Connection.Open();
cmd.ExecuteNonQuery();

var kiekis = Convert.ToString(cmd.Parameters["kiekis"].Value);

MessageBox.Show(kiekis);
cmd.Connection.Close();

To by mělo být schopno spustit funkci jako uloženou proceduru při očekávání návratové hodnoty s názvem kiekis typu number být k dispozici pro práci.



  1. Proč při navazování připojení k serveru SQL došlo k chybě související se sítí nebo specifickou instancí?

  2. SQL dotaz na více hodnot v jedné buňce

  3. Oracle PLSQL bloková struktura a typy

  4. Mám navrhnout tabulku s primárním klíčem varchar nebo int?