Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, et autres ressources sur Oracle et ses technologies
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 30/12/2011, 15h02   #1
SheikYerbouti
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 705
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 705
Points : 7 382
Points : 7 382
Par défaut Extraire le contenu d'une table ou générer les ordres d'insertion

Bonjour,

Je vous propose un nouvel élément à utiliser : Extraire le contenu d'une table ou générer les ordres d'insertion

Ce script contient la définition d'une procédure stockée (EXTRACTION_TABLE.PRC) qui permet d'extraire dans un répertoire (DIRECTORY) particulier et un fichier nommé soit :



Les lignes de la table avec le séparateur souhaité

Les ordres d'insertion correspondant à la sélection



Cette procédure permet d'indiquer les particularités suivantes :



le caractère de séparation des colonnes (par défaut la virgule)

le format des dates (par défaut 'DD/MM/YYYY')

une clause WHERE

une clause ORDER BY





Voici les paramètres qu'accepte la procédure



CREATE OR REPLACE PROCEDURE Extraction_Table ( PC$Table in Varchar2, -- Nom de la table a extraire PC$Fichier in Varchar2, -- Nom du fichier de sortie PC$Repertoire in Varchar2, -- Nom du directory de sortie PC$Separateur in Varchar2 Default ',', -- Caractere de separation PC$Entetes in Varchar2 Default 'O', -- Affichage de l'entete des colonnes PC$DateFMT in Varchar2 Default 'DD/MM/YYYY', -- Format des dates PC$Where in Varchar2 Default Null, -- Clause Where de filtrage PC$Order in Varchar2 Default Null -- Colonne de tri ) IS



PC$Table reçoit le nom de la table à extraire

PC$Fichier reçoit le nom du fichier d'extraction

PC$Repertoire reçoit le nom du répertoire d'extraction

PC$Separateur reçoit le caractère de séparation des colonnes (sans effet pour la génération des ordres d'insertion)

PC$Entetes peut prendre 3 valeurs :



'O' demande l'extraction des lignes avec affichage de l'entête des colonnes

'I' demande la génération des ordres d'insertion

'O' et 'I' demande l'extraction des lignes sans entête de colonnes



PC$DateFMT reçoit le format d'extraction des dates

PC$Where reçoit une éventuelle clause de filtrage

PC$Ordre reçoit une éventuelle clause de tri



Quelques exemples d'utilisation :



Extraire dans un fichier les lignes de la table EMP avec entête de colonne, séparées par un point-virgule



Extraction_table ( PC$Table => 'EMP' , PC$Repertoire => 'FIC_OUT' , PC$Separateur => ';' ) ;



Générer les ordres d'insertion pour la table EMP avec format des dates 'DD/MM/YYYY HH24:MI:SS' dont le job est 'CLERK'



Extraction_Table ( PC$Table => 'EMP' , PC$Repertoire => 'FIC_OUT' , PC$Entetes => 'I' , PC$DateFMT => 'DD/MM/YYYY HH24:MI:SS' , PC$Where => 'JOB = ''CLERK''' ) ;



Si vous souhaitez également n'extraire que certaines colonnes de la table, la procédure est aisément modifiable, en lui passant en paramètre supplémentaire, une collection contenant les colonnes à extraire.



Le fichier extraction_table.zip contient deux procédures :



extraction_table_8i.prc pour une base 8i

extraction_table_9i.prc pour une base 9i





Qu'en pensez-vous ?
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h23.


 
 
 
 
Partenaires

Hébergement Web