sql >> Base de Datos >  >> RDS >> Oracle

C# llamar a la función almacenada de Oracle

El ORA-06550 el código que obtiene significa que la función se compiló con declaraciones no válidas y debe volver a escribirse. No veo nada obviamente incorrecto en el código, por lo que es posible que tenga problemas como permisos o nombres de tabla incorrectos y, ante todo, debe verificar si puede ejecutar la función en un editor PL/SQL. Luego, después de ponerlo en marcha, intente...

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();

Esto debería poder ejecutar la función como un procedimiento almacenado mientras espera un valor de retorno llamado kiekis de tipo number estar disponible para trabajar.