Oracle function + asp.net 2.0 c#

Résolu
cs_bossou Messages postés 71 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 7 octobre 2011 - 22 juil. 2009 à 15:33
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 22 juil. 2009 à 22:37
Bonjour,
je travail actuellement sur un projet en asp.net 2.0 utilisant une base de données oracle 10.0. J'ai une fonction en oracle qui est définie comme suit :

function SELECT_USER_INFO
--======================
( NomUser varchar)
return sys_refcursor
--======================
as
curseur sys_refcursor;
begin
open curseur for
Select USERID, COMPANY, EMAIL
from RB_USERS
where NAME = NomUser ;
return curseur ;
end

et mon code c# pour l'exécuter est le suivant:

string procStocke = "SELECT_USER_INFO";

DbCommand userInfoCmd = OraConnection.CreateCommand();
userInfoCmd.CommandType = CommandType.StoredProcedure;
userInfoCmd.CommandText = "SELECT_USER_INFO";

DbParameter loginParam = userInfoCmd.CreateParameter();
loginParam.ParameterName = "NomUser";
loginParam.DbType = DbType.String;
loginParam.Size = 50;
loginParam.Value = loginName;
userInfoCmd.Parameters.Add(loginParam);


DbDataReader result = userInfoCmd.ExecuteReader();
result.Read();

if (result.FieldCount > 0)
{
m_userID = (int)result["USERID"];
m_prenomNom = (string)result["COMPANY"];
m_emailAdress = (string)result["EMAIL"];
}
result.Close();

mais quand le l'exécute je reçois l'erreur suivante :

Détails de l'exception: System.Data.OracleClient.OracleException: ORA-06550: line 1, column 7:

ORA-06550: line 1, column 7:
PLS-00221: 'SELECT_USER_INFO' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

Erreur source:

Ligne 59 :
Ligne 60 :
Ligne 61 : DbDataReader result = userInfoCmd.ExecuteReader();
Ligne 62 : result.Read();
Ligne 63 :

Je viens donc demander de l'aide SVP!!! je galère depuis plusieurs jours pour trouver une solution.
Merci pour votre aide.

3 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 juil. 2009 à 19:52
Salut,

Je ne connais pas Oracle
mais la méthode que tu utilises est pour des procédure stockées

Pour des fonctions je verrais plutot

comandtext = "select * from SELECT_USER_INFO(@P1,@P2)";

En espérant que ca t'aide.
3
cs_bossou Messages postés 71 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 7 octobre 2011 1
22 juil. 2009 à 22:26
merci pour la réponse mais j'aimerais savoir à quoi correspondent @p1 et @p2. merci
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
22 juil. 2009 à 22:37
Les parametres mais je ne sais pas comment tu les déclares en Oracle.

Ca doit etre ? en Oracle.
0
Rejoignez-nous