Bjr,
j'aimerai exeuter une procedure dans une requête Sql , comment pourrai je le faire.
merci de me donner une idée ou une astuce via laquelle je pourrai le faire .
Salutations
Bjr,
j'aimerai exeuter une procedure dans une requête Sql , comment pourrai je le faire.
merci de me donner une idée ou une astuce via laquelle je pourrai le faire .
Salutations
Quel type de procédure ?
Avec quel SGBD ?
En précisant le SGBD que vous utilisez et sa version, les réponses proposées seront adaptées aux spécificités et limitations de celui-ci.
Règles du forum Langage SQL à lire par tous
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
pour la procedure, c'est une procedure qui permet d'activer un paramêtre, ce dernier me permettra d'afficher les données que je cherche
le cas dans le quel je me retouve est le suivant :
j'aimerai bien trouver un moyen qui me permet donc de faire integrer la
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 begin dbms_application_info.set_client_info(41); end; select * from po_headers k
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 procedure (begin dbms_application_info.set_client_info(41); end; )le SGBDR ORACLE 9.2.0.5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from po_headers k
Merci .
c'est pas plus simple de faire un truc de ce style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT * FROM po_headers_all k where org_id = 41;
une procédure non, une fonction oui !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 create or replace function f return number is begin dbms_application_info.set_client_info(41); return 1; end; / select * from t where f=1; A B C ---------- ---------- ---------- 1 2 3 4 select client_info from v$session where sid in(select sid from v$mystat); CLIENT_INFO ---------------------------------------------------------------- 41
est-ce que la fonction est bien exécutée qu'une seule fois et AVANT de chercher les données ? Je crains que non.
Le but ici c'est de positionner des variables d'environnement dans la session pour voir les données ad hoc dans la table (un genre de VPD)... c'est du Oracle Application![]()
quelle soit executée une ou 10'000 fois ça m'est égal. Si tu ne veux qu'elle soit executée qu'une fois tu selectionne depuis DUAL, style
mais même si elle est executée plus d'une fois, ça ne pose aucun problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT * FROM YOURTABLE, (SELECT F(9999) FROM DUAL)
Le but de cette astuce est qu'une interface qui ne fait que des SELECT sur la base ait la possibilité d'attribuer une valeur a la session, par exemple en selectionnant une ligne bidon de dual.
Ca m'est déjà arrivé d'y avoir recours lorsque le développeur avait un environment de dévelopment de Java lui permettant d'accèder aux tables mais pas aux procédures.
je pense au coté perf
1 millions d'appel à la fonction ça peut devenir très couteux... mais le problème c'est surtout d'être sûr que la fonction est appelée AVANT le parsing de la requête![]()
Partager