[oracle] nom de table en argument d'une procedure

nom de table en argument d'une procedure [oracle] - SQL/NoSQL - Programmation

Marsh Posté le 04-05-2007 à 12:10:57    

Hello,
 
j'essaye de créer une procedure de creation de fichier csv, elle fonctionne mais j'aimerai la rendre plus modulable en permettant de spécifier en argument la table permettant l'extract:
 

Code :
  1. PROCEDURE EXTRACT_CSV(debut DATE,fin DATE,fname VARCHAR ,tbname VARCHAR ) AS
  2.   CURSOR c_data IS
  3.      SELECT id_membres,datekw FROM tbname where datekw BETWEEN debut AND fin ORDER BY dbms_random.value ;
  4.   v_file  UTL_FILE.FILE_TYPE;
  5. BEGIN


 
ce qui est etrange c'est qu'en specifiant le nom de la table en dur ca passe mais des que j'essaye de la mettre en parametre le compilo me sort:

Citation :

Error(4,36): PL/SQL: ORA-00942: table or view does not exist


 
Ne devine t il pas que le nom est passé en argument ?
Ou est ce que je m y prend mal ?
 
 
Merci pour votre aide

Reply

Marsh Posté le 04-05-2007 à 12:10:57   

Reply

Marsh Posté le 04-05-2007 à 16:21:08    

non il ne le devine pas pour lui tbname dans ce cas la est un nom de table.
 
par contre si tu cherches du coté de EXECUTE IMMEDIATE tu devrais trouver ton bonheur

Reply

Marsh Posté le 04-05-2007 à 16:41:14    

ok je vais regarder mais faudrait qu'on m'explique pourquoi il ne me dit pas que "debut","fin" ne sont pas des champs de ma table alors ;)

Reply

Marsh Posté le 05-05-2007 à 16:48:32    

et bien parceque la il va interpreter la valeur du parametre, ce qui n'est pas le cas pour les noms de table ou de schema, il n'y a pas grand chose a expliquer, c'est juste comme ca

Reply

Marsh Posté le 05-05-2007 à 17:52:51    

ok !
en tout cas execute immediate remedi a mon probleme ; )
 
merci a toi !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed