je reçois cette erreur de base de données Progress lors de l'exécution de la requête suivante en utilisant ODBC:Erreur ODBC « colonne x dans le tableau y a une valeur supérieure à sa longueur maximale ou de précision »
SELECT distinct Table.column,
{ fn CONVERT(SUBSTRING(Table.ProblematicColumn, 1, 60), SQL_VARCHAR)} as test
FROM PUB.Table
WHERE (Table.id IN (
SELECT Table.id
FROM PUB.Table
))
Je sais qu'il est possible de le fixer à l'aide les DBTools. Cependant, je lance des requêtes sur plusieurs bases de données Progress de plusieurs clients, il n'est donc pas pratique de le faire à chaque fois. Aussi, pour une raison quelconque, le client ODBC que j'utilise (PHP), ne montre aucune erreur quand cela arrive. Au lieu de cela, il renvoie un résultat vide.
La conversion que j'ai faite à un VAR_CHAR de 60 caractères a aidé jusqu'à ce que j'ai ajouté la sous-requête. Lorsque la sous-requête est là, je reçois la même erreur.
Fait intéressant, quand le 'distinct' n'est pas là, ça marche. Mais j'ai besoin du distinct.
Éditer: La question est comment puis-je exécuter cette requête sans réparer la colonne de largeur avec DBTool.
Vous savez donc quel est le problème et vous savez comment le réparer. Mais vous ne voulez pas le réparer. Aidez-nous ici ... quelle est votre question? –
La question est simple - comment exécuter la requête et éviter cette erreur. Comme mentionné - en utilisant le '{fn CONVERT}' a aidé pour la requête principale. Comment cela peut-il être résolu quand il y a une sous-requête impliquée – David
La réponse à cette question est également simple et bien connue. –