Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

C # chama a função armazenada do oráculo


O ORA-06550 código que você obtém significa que a função foi compilada com instruções inválidas e precisa ser reescrita. Não estou vendo nada obviamente errado com o código, então você pode ter problemas como permissões ou nomes de tabela incorretos e deve verificar se pode executar a função em um editor PL/SQL antes de tudo. Então, depois de começar a correr, tente...
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();

Isso deve ser capaz de executar a função como um procedimento armazenado enquanto espera um valor de retorno chamado kiekis do tipo number estar disponível para o trabalho.