FirebirdSQL logo
 DOMAININDEX 

Format de fichier externe

La table externe est au format rows' avec une longueur fixe.Il n’y a pas de séparateurs de champs : les limites des champs et des lignes sont définies par la taille maximale en octets de chaque définition de champ.Il faut en tenir compte tant lors de la définition de la structure d’une table externe que lors de la conception d’un fichier d’entrée pour une table externe dans laquelle des données d’une autre application doivent être importées.Par exemple, le format répandu ".csv'", ne peut pas être utilisé comme fichier d’entrée, et ne peut pas être reçu directement comme fichier externe.

Le type de données le plus utile pour les colonnes de tables externes est CHAR avec une longueur fixe. La longueur doit correspondre aux données que vous souhaitez manipuler.Les types numériques et les dates peuvent facilement être convertis en eux, et les lignes sont produites telles quelles, alors que si les données ne sont pas lues par une autre base de données Firebird, les types natifs peuvent être méconnaissables pour les applications externes et être "abracadabra" pour elles.

Bien sûr, il existe des moyens de manipuler les types de données pour créer des fichiers de sortie de Firebird qui peuvent être lus directement comme fichiers d’entrée dans d’autres applications, en utilisant des procédures stockées avec ou sans utilisation de tables externes.La description de ces méthodes dépasse le cadre de ce manuel.Nous ne donnerons ici que quelques directives et conseils pour créer et travailler avec des fichiers texte simples, car une table externe est souvent utilisée comme moyen simple de créer ou de lire un journal indépendant des transactions.Ces fichiers peuvent être lus hors ligne avec un éditeur de texte ou une application d’audit.

Séparateur de ligne

En général, les fichiers externes sont plus pratiques si les lignes sont séparées par un délimiteur, comme une séquence de "nouvelle ligne" qui peut être reconnue par une application sur la plate-forme prévue.Pour Windows, il s’agit d’une séquence de deux octets "CRLF", d’un retour chariot (code ASCII 13) et d’un saut de ligne (code ASCII 10).Pour POSIX — LF est généralement autonome, dans certaines applications macOS X il peut s’agir de LFCR.Il existe plusieurs façons de remplir automatiquement la colonne du séparateur.Dans notre exemple, nous utilisons le trigger BEFORE INSERT et la fonction intégrée ASCII_CHAR.