Tables internes

Le type de données d’une table interne est entièrement spécifié par son type de ligne, sa clé et son type de table.

Type de ligne

Le type de ligne d’une table interne peut être n’importe quel type de données. Le type de données d’une table interne est normalement une structure. Chaque composant de la structure est une colonne dans le tableau interne. Cependant, le type de ligne peut également être élémentaire ou une autre table interne.

Clé

La clé identifie les lignes de la table. Il existe deux types de clés pour les tables internes : la clé standard et une clé définie par l’utilisateur. Vous pouvez spécifier si la clé doit être UNIQUE ou NON UNIQUE. Les tables internes avec une clé unique ne peuvent pas contenir d’entrées en double. L’unicité dépend de la méthode d’accès à la table.

Dans les tables avec un type de ligne structuré, la clé standard est formée de toutes les colonnes de type caractère de la table interne. Si une table a un type de ligne élémentaire, la clé par défaut est la ligne entière. La clé par défaut d’une table interne dont le type de ligne est une table interne, la clé par défaut est vide. Dans les tables avec un type de ligne non structuré, la clé standard se compose de la ligne entière. Si le type de ligne est également une table, une clé vide est définie.

La clé définie par l’utilisateur peut contenir toutes les colonnes de la table interne qui ne sont pas elles-mêmes des tables internes et ne contiennent pas de tables internes. Les références sont autorisées en tant que clés de table. Les tables internes avec une clé définie par l’utilisateur sont appelées tables de clés. Lorsque vous définissez la clé, la séquence des champs de clé est significative. Vous devez vous en souvenir, par exemple, si vous avez l’intention de trier la table en fonction de la clé.

Type de table

Le type de table détermine comment ABAP accédera aux entrées de table individuelles. Les tables internes peuvent être divisées en trois types:

Les tables standard ont un index linéaire interne. À partir d’une taille particulière vers le haut, les index des tables internes sont administrés sous forme d’arbres. Dans ce cas, la surcharge d’administration de l’index augmente en relation logarithmique et non linéaire avec le nombre de lignes. Le système peut accéder aux enregistrements en utilisant l’index de la table ou la clé. Le temps de réponse pour l’accès aux clés est proportionnel au nombre d’entrées dans le tableau. La clé d’une table standard n’est toujours pas unique. Vous ne pouvez pas spécifier une clé unique. Cela signifie que les tables standard peuvent toujours être remplies très rapidement, car le système n’a pas à vérifier s’il existe déjà des entrées existantes.

Les tables triées sont toujours enregistrées triées par la clé. Ils ont également un index interne. Le système peut accéder aux enregistrements en utilisant l’index de la table ou la clé. Le temps de réponse pour l’accès aux clés est logarithmiquement proportionnel au nombre d’entrées de table, car le système utilise une recherche binaire. La clé d’une table triée peut être unique ou non unique. Lorsque vous définissez la table, vous devez spécifier si la clé doit être UNIQUE ou NON UNIQUE. Les tables standard et les tables triées sont connues de manière générique sous le nom de tables d’index.

Les tables hachées n’ont pas d’index linéaire. Vous ne pouvez accéder à une table hachée qu’à l’aide de sa clé. Le temps de réponse est indépendant du nombre d’entrées de la table et est constant, car le système accède aux entrées de la table à l’aide d’un algorithme de hachage. La clé d’une table hachée doit être unique. Lorsque vous définissez la table, vous devez spécifier la clé comme UNIQUE.

Tables internes génériques

Contrairement à d’autres types de données locales dans les programmes, vous n’avez pas à spécifier complètement le type de données d’une table interne. Au lieu de cela, vous pouvez spécifier une construction générique, c’est-à-dire que le type de clé ou de clé et de ligne d’un type de données de table interne peut rester non spécifié. Vous pouvez utiliser des tables internes génériques pour spécifier les types de symboles de champ et les paramètres d’interface des procédures. Vous ne pouvez pas les utiliser pour déclarer des objets de données.

Leave a Reply