Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1375 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL-SQL] script sur une vue

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PL-SQL] script sur une vue

n°1581812
mimile28
Posté le 03-07-2007 à 11:37:14  profilanswer
 

Bonjour,
 
Je vous plante le décor :
j'ai une vue "liste_tables" qui contient 1 champ (=Table_name) dans lequel je stocke le nom de certaines tables de ma base.
 
Il faut que j'écrive un script me permettant de faire un :
select <un champ particulier> sur chacune des tables recensées dans ma vue.
 
Et ensuite idéalement il faudrait que j'arrive à sortir le résultat dans un fichier texte.
 
J'ai essayer de faire le select mais cela ne fonctionne pas :
 
DECLARE
v_nomtab VARCHAR2(30); -- contiendra le nom de la table, lu a partir de ma vue
CURSOR c_listetab IS SELECT table_name FROM liste_tables ORDER BY table_name;
 
BEGIN
OPEN c_listetab;
LOOP
FETCH c_listetab INTO v_nomtab;
SELECT * FROM v_nomtab;
END LOOP;
CLOSE c_listetab;
END;
 
Merci d'avance pour votre aide !

mood
Publicité
Posté le 03-07-2007 à 11:37:14  profilanswer
 

n°1581843
casimimir
Posté le 03-07-2007 à 12:15:55  profilanswer
 

ca ne marchera pas comme ca, tu dois construire ton sql et l'exécuter, cherche du coté de execute immediat
 
tu devras faire un truc genre  
 

Code :
  1. monSql:= 'select * from ' || v_nomtab;
  2. execute immediate monSql;

n°1581882
mimile28
Posté le 03-07-2007 à 13:38:05  profilanswer
 

Merci ça fonctionne, mais j'ai maintenant un autre soucis...  
La requête SELECT qui dans le LOOP va s'executer sur toutes les tables contenues dans ma vue. Pour chacune des tables il faudrait que je stocke les résultats du SELECT dans un fichier. Le fichier en sortie doit porter le nom de la table sur laquelle j'ai fait le SELECT.
 
J'ai donc écrit ce code :
declare  
  Fichier UTL_FILE.FILE_TYPE ;
  CURSOR c_listetab IS SELECT table_name FROM liste_tables;  
begin
  for i in  c_listetab  loop
    Fichier := UTL_FILE.FOPEN( 'C:\', i.table_name||'.txt', 'W', 100000) ;
   execute immediate 'select * from ' || i.table_name;
   UTL_FILE.FCLOSE( Fichier);
  end loop;
end;
 
Mais j'ai une erreur -> exception définie par l'utilisateur non traitée
 
Alors si vous avez une idée... merci d'avance !

n°1581893
casimimir
Posté le 03-07-2007 à 13:58:01  profilanswer
 

fais un traitement d'exception pour la traiter plutot que la laisser remonter, et check le message.
 
charche du coté de exception sur google


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PL-SQL] script sur une vue

 

Sujets relatifs
Clôturer une session utilisateur avec un script perlConversion DateTime en timeStamp avec contrainte SQL
|SQL] Conversion Long en Chaine de caractère[SQL Server 2005] Restauration d'une table dans une autre
[RESOLU] Une liste de pays dans ma base de données SQLScript VBscript qui ne fonctionne pas
Edit : Script Test ping (encore)[résolu]Une balise script qui empêche tout affichage dans IE
1er script Perl taille d'un tableau[SQL server et ODBC] PB erreur 3151 aléatoire !
Plus de sujets relatifs à : [PL-SQL] script sur une vue


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR