AllExperts > Ingres 
Search      
Ingres
Volunteer
Answers to thousands of questions
 Home · More Ingres Questions · Answer Library  · Encyclopedia ·
More Ingres Answers
Question Library

Ask a question about Ingres
Volunteer
Experts of the Month
Expert Login

Awards

About Us
Tell friends
Link to Us
Disclaimer

 
 
 
 
About Jean-Pierre Zuate
Expertise
Any questions about database Ingres (owned by Computer Associates then Ingres Corp) : - Ingres 6.4 - OpenINGRES from 1.0 to 2.0 - IngresII from 2.0 to 2.6 - Ingres R3, Ingres 2006 (Open Source version) - All tool around Ingres : ABF, Report Writer, Replicator, OpenROAD (3.5 to 2006), Ingres/NET Ingres/STAR, ...

Experience
16 years of computing experience as :
- AS400 programmer
- AIX / Ingres administrator and developer (OpenROAD and korn shell)
- Ingres DataBase Administrator
- Ingres expert - Data modelisation - ETL - Reporting - Many of Computer Associates sofwares - ITIL / CMDB / Change Management

Organizations
http://lafageconseil.fr

 
   

You are here:  Experts > Computing/Technology > Databases > Ingres > export table data from ingres to .csv or .txt file

Ingres - export table data from ingres to .csv or .txt file


Expert: Jean-Pierre Zuate - 2/13/2008

Question
Hello Jean pierre,
In the company I'm working for, we're using an openroad application that run on a Ingres 2.6 database . I've been asked to automate an export of data from tables within ingres to either .csv or .txt format .Those data will than be imported onto access .

Would you be able to help ?
I'm don't really have any  database or develloping skills unfortunatel, and would really apprieciate some help .

Merci

Didier

Answer
Bonjour,

Vous pouvez utiliser l'instruction SQL copy table (cf http://docs.ingres.com/sqlref/Copy) pour générer votre fichier .csv.

Regardez aussi la commande copydb (cf http://docs.ingres.com/cmdref/copydbCommandCopyandRestoreaDatabase) pour générer des ordres copy table et les modifier au lieu de les créer de toute pièce (selon la liste des tables à exporter, le nombre des colonnes, cela peut être intéressant). Utilisez la commande copydb en lui passant aussi une liste de tables :
copydb -c nom_base table1 table2 table3
-c est obligatoire dans votre cas pour générer des ordres d'export/import au format ASCII (vs binaire), qui est par définition lisible à l'oeil (par vi ou notepad).

Jetez aussi un oeil à la commande unloaddb (qui concerne toute la base). En guise de culture c'est intéressant. La commande unloaddb génère, pour toute la base, 4 fichiers :
- copy.out : SQL d'export des données
- unload.ing (ou unload.bat) : programme d'export des données (appelle copy.out)
- copy.in : SQL d'import des données (et création des tables)
- reload.ing (ou reload.bat) : programme d'import des données (appelle coy.in)

Pour copydb c'est quasiment la même chose, si ce n'est qu'elle ne génère que les fichiers copy.in et copy.out. Etudiez aussi les options de copydb, dans votre cas -with_data devrait être intéressante.

Quel que soit le type de votre OS (Windows, Unix ou Linux) vous procédez comme suit :
1/ Fabriquer un fichier SQL d'export des données par COPY TABLE (ne pas oublier \p\g à la fin)
2/ A fréquence régulière ou souhaitée, lancer la commande suivante :
sql nom_base < fichier.sql
Regardez les options de la commande sql (http://docs.ingres.com/cmdref/sqlCommandStarttheLineModeSQLTerminalMonitor)


A savoir si vous souhaitez exporter le résultat d'une requête (avec ou sans jointure), vous pouvez passer par les tables mémoire (GLOBAL TEMPORARY TABLE, cf http://docs.ingres.com/sqlref/DeclareGlobalTemporaryTable), on peut les copier de la même manière qu'une vraie table. Selon la version de Ingres, il faut absolument précéder le nom de la table par session. (versions < Ingres2006 R2 je crois).

N'hésitez pas à revenir vers moi en cas de nécessité.

Cordialement,
Jean-Pierre ZUATE
http://lafageconseil.fr

Add to this Answer   Ask a Question


 
User Agreement | Privacy Policy | Kids' Privacy Policy | Help
Copyright  © 2008 About, Inc. AllExperts, AllExperts.com, and About.com are registered trademarks of About, Inc. All rights reserved.