Unable to allocate sequence numbers
An error occurred while obtaining new RecID value for the table
An error occurred while obtaining new RecID value for the table
Les numéros de séquence sont stockés dans la table SystemSequences. Pour commencer, j’effectue une requête pour vérifier si la valeur NEXTVAL est égale ou très proche à MAXVAL pour les tables de la compagnie dont je veux dupliquer. Si c’est le cas, le système d’allocation de numéro de séquence échouerait :
SELECT *
FROM systemsequences
WHERE dataareaid = 'dat'
ORDER BY nextval DESC
WHERE dataareaid = 'dat'
ORDER BY nextval DESC
Effectivement, il semble y avoir un problème avec les tables 9, 165, 356, 494, 714 et 768. La relation entre le nom d’une table et le TabID est située dans la table SQLDICTIONARY. La requête suivante me donne le nom de la table avec le TabID 9
SELECT *
FROM sqldictionary
WHERE fieldid = 0 and tableid = 9
WHERE fieldid = 0 and tableid = 9
Je regarde le dernier RECID attribué dans la table BANKCHEQUELAYOUT avec cette requête :
SELECT MAX (RECID)
FROM bankchequelayout
WHERE dataareaid = 'dat'
WHERE dataareaid = 'dat'
Finalement, il suffit de modifier le champ NEXTVAL dans la table systemsequence pour que la valeur soit supérieure à la valeur du dernier RECID attribué pour la table en question.
UPDATE systemsequences
SET nextval = 5637144830
WHERE dataareaid = 'dat' and tabid = 9
WHERE dataareaid = 'dat' and tabid = 9