
Envoyé par
al1_24
Et pourquoi pas simplement créer des vues ?
Hmmm... je n'ai jamais créé de vue (je n'ai fait que du SQL "de base"... (sans jeu de mot!)), mais, pour le peu que j'en sais, ça pourrait effectivement répondre à mon besoin... au moins pour les "select". Juste à titre indicatif, est-ce que ça 'marcherait' aussi pour les "delete" et les "insert"? 
Mais j'ai surtout un autre petit souci: en fait, je suis connecté sur la base de prod (via un vpn) et je ne sais pas si j'ai le droit de créer une vue...
J'imagine qu'une telle création ne devrait pas modifier les performances de la base (ce n'est pas comme un index), non?
À l'heure actuelle, le mieux que j'aie trouvé, ce sont des "define", par exemple:
1 2 3 4 5 6
| define the_truc_id = 12345; -- au début du fichier
select machin.id as id, machin.f1 as F1, truc.f2 as F2
from machin, truc
where truc.machin_id = machin.id
and truc.id = &the_truc_id; -- et des dizaines d'autres requêtes du même genre (parfois sur une trentaine de lignes (à cause des "decode")) |
J'imagine que la "variable" the_truc_id est "locale" à ma session SQL developer, non?
Est-ce qu'une vue peut aussi être "locale", c'est-à-dire non partagée par les autres utilisateurs?
À l'heure actuelle, je fais du copier/coller 
1 2 3
| select machin.id as id from machin, truc where truc.machin_id = machin.id and truc.id = &the_truc_id;
define the_machin_id = /* copier/coller le résultat de la ligne précédente */; |
Y a-t-il possibilité de "stocker" le résultat d'un "select" dans une "variable", quelque chose comme:
define the_machin_id = $(select machin.id as id from machin, truc where truc.machin_id = machin.id and truc.id = &the_truc_id);
Veuillez me pardonner si je dis des hénormités...
Partager