я использую функцию:Вызов функции с параметрами типа, определяемых пользователем (Oracle ODP.NET)
fu_has_permissions(udt_person('johny','superman'),'fly_away')
udt_person является определяемый пользователем тип:
create or replace TYPE udt_person AS OBJECT
(name VARCHAR2(3),
id VARCHAR2(18));
Я хочу использовать привязку переменные, называющие эту функцию, но я не уверен, что я делаю неправильно ... Вот код:
......
OracleParameter udtPersParam = new OracleParameter();
udtPersParam.ParameterName = ":pUdtPers";
udtPersParam.UdtTypeName = "UDT_PERS";
string[] paramValues = { name, id };
udtPersParam.Value = paramValues;
OracleParameter pAction = new OracleParameter(":pAction", OracleDbType.Varchar2, 255);
pAction.Value = action;
parameters.Add(udtPartParam);
parameters.Add(pAction);
try
{
_loginOdr = DBFacade.ExecuteSelectQuery("select fu_has_permissions(:pUdtPart, :pAction) from dual", parameters);
}
Спасибо!
Какая ошибка у вас? Это опечатка, что 'UdtTypeName' не совпадает с именем типа Oracle? –
«Значение не входит в ожидаемый диапазон», на линии udtPersParam.Value = paramValues; – maephisto