Un parametre dans une requette SQL??

Fermé
simodsio Messages postés 66 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 décembre 2009 - 7 août 2008 à 11:02
simodsio Messages postés 66 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 décembre 2009 - 11 août 2008 à 10:57
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 3924 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 722
7 août 2008 à 12:28
(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 66 Date d'inscription mardi 31 janvier 2006 Statut Membre Dernière intervention 8 décembre 2009
11 août 2008 à 10:57
Merci à toi
0