Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 16h24   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
Par défaut [oracle 9.2] Passage d'un dbLink en paramètre

Bonjour,

J'essaie de faire un select simple sur un dbLink, mais en passant ce dblink en paramètre. Et je n'y arrive pas.

Sous TOAD,
Code :
1
2
SELECT * 
FROM "MA_TABLE"@MON_LIEN
marche très bien.

Maintenant, je voudrais faire un truc du genre :
Code :
1
2
SELECT * 
FROM "MA_TABLE":param
avec param = @MON_LIEN, mais ca ne marche pas : "table ou vue inexistante". Je pense que des ' ' sont rajoutés autour de la valeur de mon paramètre, et que ca fait échouer le truc...

avec param = MA_TABLE@MON_LIEN ne marche pas mieux....

Si quelqu'un a une piste....
(la finalité est de lancer cette requête via un développement C#, mais je ne peux pas y générer ma requête SQL dynamiquement, il faut absolument que je passe par un paramètre...)

Merci d'avance
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 16h29   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
EXECUTE IMMEDIATE est ton ami
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 16h37   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
Mais le EXECUTE IMMEDIATE, ca va être dans un bloc PL/SQL....non ? Ca m'arrange pas trop ca.....

Je ne maitrise pas trop le EXECUTE IMMEDIATE, je regarde.....
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 17h05   #4
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
Bon, je ne vois pas trop comment utiliser le EXECUTE IMMEDIAT dans mon cas
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 18h11   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
sans PL/SQL je ne vois pas comment tu peux paramètrer quoi que ce soit

Eventuellement sous SQL*Plus tu peux utiliser le &
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 23h28   #6
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
En fait mes requêtes sont exécutées à partir d'un programme développé en C#.
Je peux donc mettre des paramètres dans ma query (SELECT * from MA_TABLE WHERE id = :param), renseignés mes paramètres et exécuter ma query.

(et comme dans TOAD qui va me demander la valeur des paramètres, quand j'execute la query).

Sauf que là, je veux mettre mon dbLink en paramètre, et je n'y arrive pas. (Et je ne peux pas contruire dynamiquement ma query dans le code, en tout cas pas comme je veux....)
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 14h15   #7
Candidat au titre de Membre du Club
 
Inscription : juillet 2004
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 36
Points : 13
Points : 13
Personne n'a une autre petite idée ?
cyrille_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 14h49   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu peux créer une fonction qui retourne un REF CURSOR avec le nom du DB Link en paramètre pour exécuter la requête dans un EXECUTE IMMEDIATE. Après t'auras plus qu'à lancer la fonction
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 15h00   #9
Membre actif
 
Avatar de Loyd1974
 
Inscription : août 2007
Messages : 176
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 176
Points : 172
Points : 172
question bête, j'ai vu que tu as essayé :
Code :
1
2
3
 
FROM "MATABLE":param avec param=@MON_LIEN
FROM :param avec param = MATABLE@MON_LIEN
As-tu essayé FROM MATABLE@:param avec param=MON_LIEN ?
Loyd1974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h46.


 
 
 
 
Partenaires

Hébergement Web