Bonsoir François,

J'avais à plusieurs reprises créé des tables par copier-coller à partir de feuille Calc. Mais je ferai des essais avec cette procédure. En tout cas, merci de l'avoir porté à notre connaissance.

Bonne soirée et bon dimanche,
Bernard


Le 02/10/2010 19:26, Francois Gatto a écrit :
Bonsoir Bernard,

Le 02/10/2010 10:27, ribotb a écrit :
C'est un truc que je ne connaissais pas, l'association d'une table à un
fichier csv. Mais est-ce que ça n'équivaut pas au copier-coller d'une
feuille Calc,

Pas tout à fait !

procédure beaucoup plus simple puisque la table se crée
automatiquement

Oui mais un automatisme *très* relatif ;)

(il suffit alors de choisir les champs et demander
éventuellement la création d'une clé primaire) ? Pour résumer la
procédure en une phrase :-)


Les limites de cette procédure via Calc seront rapidement atteintes notamment lors de l'import d'un nombre de lignes très important et supérieur aux possibilités d'une feuille.

Par ailleurs, suite à des besoins spécifiques, l'injection de plusieurs centaines de millier de lignes est assez rébarbatif sous HSQLDB sur un serveur Ubuntu. Certaines manips sur les tables deviennent particulièrement fastidieuses et "longuissimes". Aussi j'ai dû me rabattre vers une config LAMP qui offre une grande souplesse et efficacité.

Bernard

Bonne soirée
Francois Gatto


Le 02/10/2010 09:59, François Gatto a écrit :
Bonjour,

Le 01/10/2010 22:45, yves dutrieux a écrit :
Bonsoir,

Le 30 septembre 2010 21:33, Ludovic CHEVALIER<[email protected]> a
écrit
:

Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???)
VALUES(XXX,XXX);


Si c'est des inserts, perso, j'aurais généré un fichier texte csv
avec les
valeurs et utilisé la commande sql
insert from file (ou qq chose du genre, je connais plus la syntaxe).

Yves



Voilà, voilà.

Ludo


Merci Yves d'avoir réveiller mes neurones.

Certes, sauf erreur de ma part, il ne s'agit pas du simple emploi
d'une séquence du genre "insert from file".

HSQLDB permet effectivement d'injecter en masse des données via des
fichiers de type csv.
La procédure est "légèrement" longue et on y trouvera intérêt que dans
des insertions par lots.

La démarche est la suivante :
1 *création* d'une table (temporaire) de type TEXT,
2 *association* du fichier csv à injecter,
3 *insertion* des données dans une table (existante ou à créer)
4 *suppression* de la table temporaire

En SQL voici un exemple :

1 *création* d'une table (temporaire) de type TEXT

CREATE TEXT TABLE "TableCsv" (
"ID" identity,
"Nom" varchar(25) ,
"Temps" Time );

2 *association* du fichier csv à injecter

SET TABLE "TableCsv" SOURCE "insertion_donnees.csv";

3 *insertion* des données dans une table "LaTable"
existante *et* de même structure.

INSERT INTO "LaTable" SELECT * FROM "TableCsv";

4 *suppression* de la table temporaire

DROP TABLE "TableCsv";

Voilà !

Bon faudra bien veiller à respecter les structures des tables et
l'agencement des données dans le fichier à importer.

Un peu de lecture ici :
http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

Bonne journée
Francois Gatto

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 101002-0, 02/10/2010
Analyse le : 02/10/2010 19:35:42
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Répondre à