ASP.NET /VB: Probleme dexecution de requete SQL appelant une fonction

racecoco Messages postés 4 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 22 mars 2005 - 1 juil. 2004 à 17:30
racecoco Messages postés 4 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 22 mars 2005 - 28 oct. 2004 à 17:38
Bonjour,
Je travaille sur une base de donnée Oracle.
En effectuant une requete sql contenant une fonction que j'ai défini, à l'exécution j'ai un probleme d'interpretation.
Ma connexion est une connexion de type Oraclconnection.
Ma requete est tres simple, de type
select user from table_user where user_name='toto' and mafonction(login)='tata'

ou login et user_name sont des champs de la table
le commandtype est de type text.

En supprimant la clause and mafonction..., l'execution s'effectue sans probleme.

l'erreur retournée est la suivante:
System.Data.OracleClient.OracleException: ORA-00904: invalid column name

La requete s'effectue convenablement avec sqlplus.
Dans le cas ou je retire la fonction et que je met une chaine de caractere en dur, l'execution est ok.

Merci d'avance a ceux qui ont une solution a mon probleme.

2 réponses

otterc8 Messages postés 52 Date d'inscription dimanche 7 septembre 2003 Statut Membre Dernière intervention 11 avril 2007
28 oct. 2004 à 09:51
Oulala ca fait longtemps que t'as deposé ce message, si ce n'est toujours pas reglé on va ssayer de voir!
Si c'est reglé pense a cliquer sur "réponse acceptée"

Bon déja c'est pas tres clair ce que tu raconte...mais bon on va essayer de comprendre:
Si dans ta requete SQL tu mets une fonction a toi c'est sur que ca ne peu pas fonctionner, c'est d'ailleur surement pour cet raison qu'a la compilation ca te dis que le nom de ta colonne n'existe pas! je ne sais pas a quoi te sert ta fonction mais si tu veux insérer une variable dans une requete SQL tu dois mettre des caracteres de concaténation (je crois que c'est & en VB)
Pense aussi a mettre des quote (')

ca te donne:
"select user from table_user where user_name='toto' and ' " & mafonction(login) OU mavariable " ' ='tata' "
La logique veut que ta fonction ou ta variable renvoie ou soient une chaine de caracteres (string).

Y a rien a apprendre tout a comprendre
0
racecoco Messages postés 4 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 22 mars 2005
28 oct. 2004 à 17:38
Bonjour,

Et merci de cette réponse, mais je pense en effet que je ne me suis pas bien exprimé.
En fait j'ai definie une fonction SQL stockée en base.
Cette fonction, comme je l'ai dis plus haut je l'appelle dans une requete SQL que je souhaite exécuté dans mon code VB.
Cependant la fonction (SQL) n'est pas reconnu en VB, lors de l'execution de la requete.
Concernant ce topic j'ai trouvé un moyen de contourner ce probleme: faire une vue avec ma requete.
merci tout de meme pour cette reponse: comme quoi il ne faut jamais désespérer
0
Rejoignez-nous