Select en utilisant une variable
Bonjour tout le monde,
Ma version d'Oracle est la 10g
Donc je sais pas si le titre est très explicite mais voilà en fait j'essaie de faire une sorte de SQL dynamque si on peut dire...
J'ai une table qui contient des colonnes dont seules les dernieres lettres changent. J'ai en parametre de ma procedure ces 2 dernieres lettres et je fais un test sur la valeur de la colonne correspondante aux lettres que j ai passé en paramètre...
Et ce que je cherche à faire, c'est que à chaque fois que je lance ma procédure, je créé une varaible qui contient le nom de la colonne puis je fais un SELECT sur la colonne qui a la valeur de cette varaible...
Je sais pas si vous me suivez mais je vais mettre un peu de code pour vous aidez...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
DECLARE
--ca c'est la variable qui va contenir le nom de la colonne souhaitee
w_label VARCHAR(15);
BEGIN
--donc je l instancie avec le debut commun aux colonnes et la valeur des --2 lettres passees en parametre
w_label := 'COLONNE_'||p_lettres;
--ensuite je veux utiliser la VALEUR de w_label pour faire un select sur la colonne souhaitée
SELECT ||w_label
FROM MA_TABLE
EXCEPTION
WHEN OTHERS THEN
'Erreur truc muche';
RAISE SORTIE;
END; |
Donc comme vous voyez, j'avais mis des || pour recuperer la valeur mais ca n'a pas l'air d etre ca... Et il me dit qu il ne connait pas la colonne que je veux...
Si vous avez 5 minutes et la solution...
Merci d avance :D
Re: Select en utilisant une variable
Citation:
Envoyé par georgeabitbol
(...) voilà en fait j'essaie de faire une sorte de SQL dynamque si on peut dire...
(...)
C'est exactement du SQL dynamique qu'il vous faut ! ;-)
Vous devez donc construire dynamiquement une chaine qui contiendra l'ordre SELECT à exécuter.
Reste ensuite à savoir ce que vous voulez faire des résultats de ce select...