Developpez.com

Club des développeurs et IT pro
Plus de 4 millions de visiteurs uniques par mois

Extraire le contenu d'une table ou générer les ordres d'insertion

Présentation
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

Détails
Catégories : Développement
Avatar de SheikYerbouti
Expert éminent sénior
Voir tous les téléchargements de l'auteur
Licence : Autre
Date de mise en ligne : 30 décembre 2011




Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique Oracle