Oracle function + asp.net 2.0 c# [Résolu]

Signaler
Messages postés
71
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
7 octobre 2011
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
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

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
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.
Messages postés
71
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
7 octobre 2011
1
merci pour la réponse mais j'aimerais savoir à quoi correspondent @p1 et @p2. merci
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
25
Les parametres mais je ne sais pas comment tu les déclares en Oracle.

Ca doit etre ? en Oracle.