Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
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 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: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org -- 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: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
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 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: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Le 02/10/2010 12:31, yves dutrieux a écrit : Bonjour François, La création inverse par contre elle, existe bel et bien (un select * vers un fichier csv) - j'ai confondu :-/ Oui l'export est simple et efficace. J'avais il y a quelques temps répondu là dessus et sur cette liste il me semble ;-) Bonne soirée Francois Gatto - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
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, procédure beaucoup plus simple puisque la table se crée automatiquement (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 :-) Bernard 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 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: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org -- Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1 --- Antivirus avast! : message Sortant sain. Base de donnees virale (VPS) : 101001-1, 01/10/2010 Analyse le : 02/10/2010 10:27:48 avast! - copyright (c) 1988-2010 AVAST Software. http://www.avast.com - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Moi non plus... Bernard Le 01/10/2010 23:22, François Gatto a écrit : Bonsoir, Le 01/10/2010 22:45, yves dutrieux a écrit : insert from file Je ne suis pas sûr qu'une commande de ce genre soit autorisée. Et je n'ai pas connaissance d'une commande du genre "bulk insert". Pour mes besoins d'import de données de type csv j'utilise (parfois) le gestionnaire de carnet d'adresses (Fichier>Assistants>Source de données des adresses) Francois Gatto - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org -- Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1 --- Antivirus avast! : message Sortant sain. Base de donnees virale (VPS) : 101001-1, 01/10/2010 Analyse le : 02/10/2010 10:21:22 avast! - copyright (c) 1988-2010 AVAST Software. http://www.avast.com - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonjour, Le 01/10/2010 22:45, yves dutrieux a écrit : Bonsoir, Le 30 septembre 2010 21:33, Ludovic CHEVALIER 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: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonsoir, Le 01/10/2010 22:45, yves dutrieux a écrit : insert from file Je ne suis pas sûr qu'une commande de ce genre soit autorisée. Et je n'ai pas connaissance d'une commande du genre "bulk insert". Pour mes besoins d'import de données de type csv j'utilise (parfois) le gestionnaire de carnet d'adresses (Fichier>Assistants>Source de données des adresses) Francois Gatto - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonjour, Quel moteur de BDD derrière ? Je pose la question, car la plupart des moteurs de BDD ont un accès client ligne de commande, et avec ça, en général, tu peux passer un ensemble d'instructions SQL directement à la base, par exemple en les mettant tous dans un fichier SQL. Il faut pour cela que la DB et la table soit identifiée dans ce fichier. Alex - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Je ne connais pas de moyen de faire de l'insertion de masse avec OOo mais peut-être y-a-t-il moyen de faire autrement. Je suppose que tu n'as pas écrit les 900 instructions SQL "a la mano" et qu'elles ont été générées à partir d'une source de données. Si cette source de données ressemblait à une feuille de calcul (ou pouvait être mis sous la forme d'une feuille de calcul) il serait possible éventuellement de créer une table avec l'assistant de création de OOo Base. Bernard Le 30/09/2010 21:33, Ludovic CHEVALIER a écrit : Salut! Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) VALUES(XXX,XXX); Voilà, voilà. Ludo - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org -- Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1 --- Antivirus avast! : message Sortant sain. Base de donnees virale (VPS) : 100930-0, 30/09/2010 Analyse le : 30/09/2010 22:54:39 avast! - copyright (c) 1988-2010 AVAST Software. http://www.avast.com - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Salut! Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) VALUES(XXX,XXX); Voilà, voilà. Ludo - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonjour, Pour aller dans le sens de Jean-Michel, ce serait bien de connaitre le genre de requêtes à exécuter. Bernard Ribot Le 30/09/2010 12:59, Ludovic CHEVALIER a écrit : Bonjour. Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases. Je connais la fonction qui permet de le faire via le menu Outils. Seulement, la boîte de dialogue est limitée à quelques requêtes seulement, et moi, j'en ai environ 900. Je suis obligé de faire une macro Basic ou bien y'a t-il une solution plus ... friendly user??? Merci d'avance pour vos conseils éclairés. Ludo - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org -- Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1 --- Antivirus avast! : message Sortant sain. Base de donnees virale (VPS) : 100930-0, 30/09/2010 Analyse le : 30/09/2010 21:25:33 avast! - copyright (c) 1988-2010 AVAST Software. http://www.avast.com - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonjour. Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases. Je connais la fonction qui permet de le faire via le menu Outils. Seulement, la boîte de dialogue est limitée à quelques requêtes seulement, et moi, j'en ai environ 900. Je suis obligé de faire une macro Basic ou bien y'a t-il une solution plus ... friendly user??? Merci d'avance pour vos conseils éclairés. Ludo Bonjour, On peut penser que tu veux appliquer 900 critères différents à la même table. Il faudrait donc avoir un aperçu de ta base, avec au moins une des requêtes. Mais 900 requêtes, je ne vois pas l'utilité. J.M - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org
[users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse
Bonjour. Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases. Je connais la fonction qui permet de le faire via le menu Outils. Seulement, la boîte de dialogue est limitée à quelques requêtes seulement, et moi, j'en ai environ 900. Je suis obligé de faire une macro Basic ou bien y'a t-il une solution plus ... friendly user??? Merci d'avance pour vos conseils éclairés. Ludo - To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org