THE MAXIMUM LIMIT OF INTERNAL IDENTIFIERS HAS BEEN EXCEEDED FOR DATABASE database-name
Explication
L’instruction SQL ne peut pas être exécutée car une limite d’identifiant interne a été dépassée pour la base de données. La cause de cette erreur est due à l’un des éléments suivants :
- Dans une instruction CREATE DATABASE, la limite de 65217 DBID a été dépassée.
- Pour toutes les autres instructions, la limite de 32767 OBID a été dépassée pour cette base de données.
- Si la base de données est une base de données WORKFILE, l’une des raisons suivantes peut s’appliquer :
- Le nombre d’espaces de table dans la base de données WORKFILE a dépassé la limite de 500.
- Le nombre d’index définis sur les tables temporaires globales déclarées appartenant à tous les agents sur le membre Db2 local a dépassé la limite de 10 000.
- Le nombre de tables et de déclencheurs appartenant à un agent local a dépassé la limite de 11 767. Les tables de la base de données WORKFILE incluent les fichiers de travail, les tables temporaires globales créées et les tables temporaires globales déclarées.
Action du système
L’instruction ne peut pas être traitée.
Réponse du programmeur
Prenez les mesures appropriées décrites dans les cas suivants :
- En cas de dépassement d’une limite DBID, SUPPRIMER toutes les bases de données inutilisées et émettre un COMMIT.
- En cas de dépassement d’une limite OBID, effectuez l’une des actions suivantes :
- Spécifiez une base de données différente.
- Supprimez tous les espaces table ou index inutilisés de la base de données et lancez un COMMIT.
- Si la base de données contient des espaces table multi-tables qui contiennent un mélange de tables utilisées et inutilisées, supprimez toutes les tables inutilisées et émettez un COMMIT. Exécutez l’utilitaire REORG sur chaque espace table affecté, puis exécutez l’utilitaire MODIFY RECOVERY pour récupérer les OBID de table supprimés. Pour plus d’informations, voir Récupérer de l’espace dans le DBD.
SQLSTATE
54041