J'utilise une fonction:Appel d'une fonction avec des paramètres de type définis par l'utilisateur (Oracle ODP.Net)
fu_has_permissions(udt_person('johny','superman'),'fly_away')
udt_person est un type défini par l'utilisateur:
create or replace TYPE udt_person AS OBJECT
(name VARCHAR2(3),
id VARCHAR2(18));
Je veux utiliser bind les variables Whan appelant cette fonction, mais je ne suis pas vraiment sûr de ce que je fais mal ... Voici le code:
......
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);
}
Merci!
Quelle erreur obtenez-vous? Est-ce une faute de frappe que 'UdtTypeName' ne correspond pas au nom de type Oracle? –
"La valeur ne correspond pas à la plage attendue.", À la ligne udtPersParam.Value = paramValues; – maephisto