Un parametre dans une requette SQL??

simodsio Messages postés 68 Statut Membre -  
simodsio Messages postés 68 Statut Membre -
bonjour à tous

je suis entrain d'ecrire une procedure qui prend en param le nom de pla table et le nom du shéma source.

(p_v_table_name varchar2,p_v_shema_name varchar2 ) IS

t_source varchar2(100):=p_v_table_name||'.'||p_v_shema_name;

for field in (select * from t_source) loop

for i in 1..10 loop
DBMS_OUTPUT.PUT_LINE(field.name||' gagne '||field.sal || ' Dollars');
end loop;
end loop;

j'ai un message d'erreur qui dit que la table n'existe pas !!
je sais pas si on a le droit de faire ça en PL/SQL

avez vous une sollution PLZ

Merci
A voir également:

2 réponses

sandul Messages postés 4013 Statut Membre 723
 
(Re)salut,

Tu as un:
select * from t_source
alors que tu as déclaré t_source comme étant une variable locale de type varchar2...

Sinon, en règle générale, si tu veux une proc stockée ayant des paramètres IN contenant des noms d'objets Oracle (tables, packages, views, fonctions, etc.) et si tu veux exécuter des requêtes sur les objets (exécuter des SELECT/INSERT/UPDATE/DELETE sur les tables, par exemple; appeler les fonctions etc.) c'est un peu plus compliqué: il faut passer par du SQL dynamique. Quelques infos ici: https://www.csee.umbc.edu/portal/help/oracle8/server.815/a68022/dynsql.htm

Cherche
Oracle dynamic SQL
sur Google, tu trouveras plein d'exemples.

++
0
simodsio Messages postés 68 Statut Membre
 
Merci à toi
0