ORA-06550
取得したコードは、関数が無効なステートメントでコンパイルされており、書き直す必要があることを意味します。コードに明らかに問題はないので、権限やテーブル名の誤りなどの問題が発生している可能性があります。まず、PL/SQLエディタで関数を実行できるかどうかを確認する必要があります。次に、それを実行した後、試してください...
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();
これにより、kiekis
という名前の戻り値を期待しながら、ストアドプロシージャのように関数を実行できるはずです。 タイプnumber
仕事に利用できるようになります。