Problème de retour de valeur d'une fonction PL/SQL. [Résolu]

Messages postés
2
Date d'inscription
mercredi 7 avril 2010
Dernière intervention
6 mai 2010
- 4 mai 2010 à 22:32 - Dernière réponse :
Messages postés
2
Date d'inscription
mercredi 7 avril 2010
Dernière intervention
6 mai 2010
- 6 mai 2010 à 17:14
Bonsoir,

j'ai un souci pour récupérer ma valeur de retour de ma fonction pl/sql :

create or replace
function PersonnelExiste (id_personnel personnel.id_perso%type)
return number 
is trouver number;
begin
  trouver := 0;
  for lesIdPersos in (select id_perso from personnel) loop
    if lesIdPersos.id_perso = id_personnel then
      trouver := 1;
    end if;
  end loop;
  return trouver;
exception 
  when others then
    raise_application_error (-20999,sqlerrm);
end;


Voici mon code C# :
CnOracle.Open();

OracleCommand siPersoExiste = new OracleCommand("personnelexiste", CnOracle);

siPersoExiste.Parameters.Add("id_personnel", OracleDbType.Int32,
                        ParameterDirection.Input).Value = LesCivils[i].id_perso;
siPersoExiste.Parameters.Add("trouver",OracleDbType.Int32,
                        ParameterDirection.ReturnValue);

siPersoExiste.CommandType = CommandType.StoredProcedure;
siPersoExiste.ExecuteNonQuery();

object PersoExiste = siPersoExiste.Parameters["trouver"].Value;
if (Convert.ToInt32(PersoExiste) == 0)
                    { ...


Je passe en paramètre l'identifiant du personnel qui a comme valeur 1, lorsque je teste ma fonction personnelexiste(1) sur Oracle, il me retourne la valeur 1, cependant, avec le code c#, la valeur retournée est 0, ce qui signifie que le perso n'existe pas.

Qqn peut m'éclairer???

Merci
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 5 mai 2010 à 07:37
3
Merci
Salut

C'est pas un parametre qu'il faut utiliser
mais un executescalar

bool trouver = (bool)siPersoExiste.ExecuteScalar();



Plus d'info
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de nhervagault
Messages postés
2
Date d'inscription
mercredi 7 avril 2010
Dernière intervention
6 mai 2010
- 6 mai 2010 à 17:14
0
Merci
Merci
Commenter la réponse de Liotild

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.