Bonjour,
J'aimerai exporter les résultats d'une requete a partir de forms 6i sous un format fichier excel?
Priere a celui qui a le script de me le donner. Et merci![]()
Bonjour,
J'aimerai exporter les résultats d'une requete a partir de forms 6i sous un format fichier excel?
Priere a celui qui a le script de me le donner. Et merci![]()
Par fichier Excel, tu entends csv ?
Dans ce cas, 3 solutions :
- tu fais un fichier SQL qui spool ta requete, et tu appelles ce fichier via la procédure forms host
- tu fais un curseur sur ta requête et tu génères le fichier avec le package text_io (ou utl_file si tu veux que ce soit sur le serveur de bdd)
- tu bases un bloc sur ta requête et tu utilises F60UTIL.Write_Block qui écrit automatiquement les données de ton bloc dans un fichier plat.
Merci Plainer pour ta réponse.
Svp est dce que vous pouvez me dire quel est la plus simple des trois réponses que vous m'aviez donné et me l'expliquer un peu parceque je suis un débutant en Forms.
Merci encore une fois![]()
Au niveau simplicité, elles se valent. Après elles ont toutes leurs avantages et leurs inconvénients.
- la méthode du spool a l'avantage de fonctionner en dehors de forms et elle est sans doute la plus rapide si tu as beaucoup de données. Par contre elle oblige que SQL*Plus soit installé sur le poste client ce qui n'est pas toujours le cas (loin de là).
- la méthode avec F60UTIL.Write_Block est très automatisée mais pas très performante si tu as beaucoup de données et t'oblige à avoir un block basé.
Description :
Parametres :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 FUNCTION F60UTIL.Write_Block (nom_du_bloc VARCHAR2, fichier_sortie VARCHAR2 := output.lis, mode VARCHAR2 := W, alignement_colonne BOOLEAN := TRUE, separateur VARCHAR2 := , option VARCHAR2 := ALL, affichage_seul BOOLEAN := FALSE);
* nom_du_bloc : le nom du bloc dont tu veux extraire les données
* fichier_sortie : le nom de ton fichier résultat (avec l'extension)
* mode : W pour écriture / A: pour ajout
* alignement : les données sont alignées dans le fichier de sortie
* separateur : caractère de séparation entre 2 colonnes
* option : ALL : affiche tous les enregistrement / VIEWED : uniquement les enregistrement visibles / DISPLAYED : uniquement les enregistrements affichés
* affichage seul : seuls les items visibles sont affichés
- la méthode de text_io est moins automatisée que la précédente et moins performante que la première. C'est un compromis entre les 2.
Après c'est à toi de voir quelle méthode répond le mieux à ton contexte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 declare cursor monCurseur is select ....; ptr_fic text_io.file_type; begin ptr_fic := text_io.fopen ('c:\tmp\monFichier.csv', 'w'); for maVariable in monCurseur loop text_io.put_line (ptr_fic, maVariable.col1 || ';' || maVariable.col2 ...); end loop; text_io.fclose (ptr_fic); end;![]()
merci pour votre information
mai pour ma deuzieme methode je sai pa ou mettre mon code est ce dans un declencheur ou...?
merci d'avantage
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager