echoupe
Messages postés21Date d'inscriptionmardi 29 octobre 2002StatutMembreDernière intervention15 mars 2007
-
26 juil. 2004 à 16:45
Egalon
Messages postés124Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention17 juin 2011
-
19 août 2004 à 14:15
Salut!
Voilà, je voudrais savoir comment écrire une fonction stockée sous Oracle qui me retourne un resulset et comment l'appeler depuis VisualBasic et java.
Je sais écrire une fonction qui retourne une valeur de type simple tq:
CREATE OR REPLACE FUNCTION X
(cpte varchar, sens varchar, tp number)
return varchar is
begin
if tp = 1 then
return( sens || '(' || cpte || ')');
elsif tp > 0 then
return( to_char(tp)|| '*' || sens || '(' || cpte || ')');
elsif tp = -1 then
return( '-' || sens || '(' || cpte || ')');
elsif tp < 0 then
return( to_char(tp)|| '*' || sens || '(' || cpte || ')');
else
return( '');
end if;
end;
Mais pas une qui retourne un resultset.
Aidez-moi SVP.
stabe
Messages postés144Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention17 juin 2006 26 juil. 2004 à 17:40
Bonjour,
Je ne sais pas comment on appelle une fonction stockée, peut être même que ce n'est pas possible.
Moi j'utilise des procédures stockées contenant des variables de retour (OUT), ce qui revient au même.
-- exemple à adapter
CREATE OR REPLACE PROCEDURE p_test (var_entree in INTEGER, var_retour out INTEGER)
BEGIN
if var_entree = 1 THEN
var_retour := 20 ;
else
var_retour := 60 ;
END IF ;
END
Egalon
Messages postés124Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention17 juin 2011 19 août 2004 à 10:25
Salut,
(pour une fois que je peux sortir ma petite science...)
Il est tout à fait possible d'utiliser l'appel des fonctions sous VB (c'est comme pour les procédures ou vois plus loin dans cette réponse) mais je te le déconseille pour la simple raison que tu peux pas faire tout ce que tu veux avec tes fonctions. Utilise des procédures stockées et passe un paramètre de retour.
Sinon tu peux appeler une fonction en utilisant une simple requete select avec un New ADODB.Recordset
et tu pousses la requete:
SELECT ma_fonction(mes parametres) from DUAL
et là ca te renvoie un truc sous forme de tableau avec une seule ligne.
Par contre je recherche comment appeler une procédure qui aurait ce genre d'entete:
boitierI IN boitiers.nom%TYPE,
datestring IN varchar2, ....
sachant que boitiers.nom%TYPE, c'est un varchar2(20) et le problème c'est :