4 votes

Importer un fichier texte à largeur fixe dans sqlite

Quel est un bon moyen d'importer des fichiers texte à largeur fixe dans des tables sqlite, de préférence sans utiliser de logiciel périphérique ?

Par exemple, en spécifiant la largeur de chaque champ.

Field 1: 10 characters starting with the second character
Field 2: 5  characters starting with the twelfth character
Field 3: 7  characters starting with the eighteenth character

La ligne

AABCDEFGHIJABCDEAABCDEFGA

serait importé comme :

Field 1     Field 2  Field 3
ABCDEFGHIJ  ABCDE    ABCDEFG

Merci

9voto

user4086833 Points 519

Le lien dans la réponse ci-dessus est pour le SQL générique. Voici une façon de le faire en SQLite :

CREATE TABLE fixed_width_table (full_string CHAR);
.import fixed_width_file.txt fixed_width_table

CREATE TABLE tmp AS
Select
    SUBSTR(full_string,1,11) AS field1
    ,SUBSTR(full_string,2,5) AS field2
    ,SUBSTR(full_string,2,7) AS field3
FROM fixed_width_table

1voto

CL. Points 46451

El sqlite3 Les outils n'importent que des fichiers CSV.

Il existe des outils tiers qui peuvent importer des fichiers à largeur fixe, mais cette réponse montre comment faire cela dans SQLite avec des fonctions de chaîne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X