Import DBF dans un ODB au format HSQLDB

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.

Import DBF dans un ODB au format HSQLDB

Messagepar pilotc » 26 Août 2020 15:51


La modération vous a écrit: Titre modifié : "base de données" est implicite


Bonjour,

Pour commencer : je débute totalement sur Base, et dispose de peu de connaissances Sql :wink:

Je dispose de fichiers dbf très volumineux téléchargés depuis le site de l'INSEE au format dbf (https://www.insee.fr/fr/statistiques/4309443?sommaire=3973005&q=stock+entreprise+2018). Ces fichiers dépassent largement la limite d'Excel / Calc en nombre de ligne, je ne peux les ouvrir qu'avec Access (dont je ne dispose pas) ou Base.

J'ai besoin d'executer la requête suivante : SELECT "REGION", "TAILLE", COUNT( * ), SUM( "FREQ" ) FROM "table" GROUP BY "REGION", "TAILLE", afin de compter le nombre d'entreprise par taille et par région. Cette requête fonctionne sur un échantillon test :super: mais qui exige que je sois dans une base de données hsqlbd.

Ce que je fais :
- fichier / nouveau / base de données / créer une nouvelle base de données intégrée
- en parallèle fichier / nouveau / base de données / connecter une base de données existante. Choix format dbf --> j'ai accès à mes données source

Je tente un copier-coller depuis mes données sources vers la base de données hsqlbd (choix de tous les champs + clé primaire) : message d'erreur systématique :fou:
Statut SQL: 22001
Code d'erreur: -124

Value too long in statement [INSERT INTO "stets_2018" ( "ID","REG","DEP","ZE","AU","UU","COM","APE","A64","A38","A21","A10","TAILLE","CJ1","CJ2","ARTISAN","FREQ") VALUES ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]

Sachant que les formats des champs sont corrects.

Est-ce bien la seule méthode pour repondre à mon besoin ou y a t'il un autre moyen d'intégrer des fichiers dbf dans une base hsqldb ?

Merci d'avance de votre aide !
LibreOffice 5.4.7.2.M6 (*64) Windows 10
pilotc
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 26 Août 2020 15:09

Re: import dbf dans base de données hsqlbd

Messagepar jeanmimi » 26 Août 2020 19:18

Bonjour,
pilotc a écrit:Value too long in statement

Le message signifie que des données insérées das les champs de la Base HSQLDB sont plus longs que la longueur des champs définis dans la Table qui doit les accueillir, par défaut 100 caractères, et qu'il vaut mieux passer à 500 quitte ensuite à les réduire si nécessaire.
Quant à la requête, son code SQL est conforme.
LibreOffice : Version : 7.0.4 (x64)(21 décembre 2020)
Adoptopen JRE ou Oracle JRE (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15655
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: import dbf dans base de données hsqlbd

Messagepar pilotc » 26 Août 2020 21:58

Bonsoir, merci, je vais regarder comment faire cette manip.
J'ai traité en utilisant mon access personnel en moins de 3 minutes, mais j'ai besoin de définir la méthodologie avec les outils professionnels open office, donc je vais poursuivre mes tests.
LibreOffice 5.4.7.2.M6 (*64) Windows 10
pilotc
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 26 Août 2020 15:09

Re: import dbf dans base de données hsqlbd

Messagepar pilotc » 27 Août 2020 09:59

Bonjour,

Après vérification, aucune de mes données ne dépasse les 6 caractères, donc l'erreur ne vient pas de là.
Je continue de chercher.

Bonne journée
LibreOffice 5.4.7.2.M6 (*64) Windows 10
pilotc
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 26 Août 2020 15:09

Re: import dbf dans base de données hsqlbd

Messagepar jeanmi2403 » 29 Août 2020 16:11

Bonjour,
Si tu m'explique comment récupérer les fichiers en question, je veux bien m'intéresser au sujet en question.
Cordialement,
Jean-Michel
LibO 6.4.7 et AoO 4.1.8 sur Windows 10 x64 & Ubuntu 20.04
LibO 7.0.4 sur OpenSuse
Avatar de l’utilisateur
jeanmi2403
PassiOOnné
PassiOOnné
 
Message(s) : 722
Inscrit le : 18 Jan 2008 10:02
Localisation : Sucy en Brie

Re: import dbf dans base de données hsqlbd

Messagepar Dude » 31 Août 2020 09:16

Salut,

pilotc a écrit:Après vérification, aucune de mes données ne dépasse les 6 caractères, donc l'erreur ne vient pas de là.

Bien sûr que si. L'erreur d'insertion SQL vient du fait qu'une de tes colonnes est mal typé.
Si j'ouvre le DBF puis en fait la copie dans un ODB au format natif HSQL, l'assistant va se bloquer avec le message d'erreur.
Il suffit de dire "Non" pour arrêter le processus et voir à quelle ligne, il s'est arrêté.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22247
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: import dbf dans base de données hsqlbd

Messagepar pilotc » 31 Août 2020 11:13

Bonjour,

Le fichier est à récupérer ici : https://www.insee.fr/fr/statistiques/43 ... prise+2018, à la ligne Fichier Stocks d'unités légales au 31 décembre 2018 télécharger le zip version dbase qui pèse 10Mo puis le dézipper. Prendre alors le fichier nommé stent_2018.dbf.

Je vais tester à nouveau la longueur des champs mais pour info je ne créé pas de table dans la hsql, c'est lors du copier-coller que Base détecte tout seul la longueur des champs que je souhaite coller.

Bonne journée à tous
LibreOffice 5.4.7.2.M6 (*64) Windows 10
pilotc
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 26 Août 2020 15:09

Re: import dbf dans base de données hsqlbd

Messagepar pilotc » 31 Août 2020 11:28

Merci, effectivement, j'avais une valeur plus grande que les autres, ce qui bloquait sur une ligne précise. J'ai modifié la longueur mais j'ai un nouveau message d'erreur, sans possibilité d'ouvrir la table cette fois-ci :
Statut SQL: S1000
Code d'erreur: 40
S1000 General error java.lang.NullPointerException in statement [SELECT * FROM "stent_2018"]
Dernière édition par micmac le 31 Août 2020 11:33, édité 1 fois.
Raison: Message mis entre balise [quote]
LibreOffice 5.4.7.2.M6 (*64) Windows 10
pilotc
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 26 Août 2020 15:09

Re: import dbf dans base de données hsqlbd

Messagepar Dude » 31 Août 2020 13:56

Sans doute un problème de mémoire, quelle est la taille du DBF ?
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22247
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: import dbf dans base de données hsqlbd

Messagepar jeanmimi » 01 Sep 2020 07:44

pilotc a écrit:effectivement, j'avais une valeur plus grande que les autres,
Afin de faciliter les tests, quel est le champ concerné ?
LibreOffice : Version : 7.0.4 (x64)(21 décembre 2020)
Adoptopen JRE ou Oracle JRE (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15655
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 9 invité(s)