Bonjour à tous.
Je vous explique la situation : suite à un upgrade de la version de PostgreSQL de la 8.2 à la 8.3, après restauration de mes BDD qui s'est bien déroulée, l'application web qui en dépend ne fonctionne plus. En fait il s'agit d'un problème dû à une requête du genre :
qui fait une comparaison d'égalité entre un champ de type character varying et un autre de type integer. D'où l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select exd.id,exd.node, exd.valid,(select codes.libelle from codes where codes.sous_cat='ACTI_RECH' and codes.code=exd.activite) as activite_lib,exd.activite,exd.nomempl from exd where exd.node ILIKE '011A85P'
Mon souci: c'est que cette requête se trouve dans une .ddl que je ne peux modifier, et la BDD ne doit subir aucun changement sur son dictionnaire de données (pas de alter column pour changer le type). L'application n'est pas de moi et je dois la reprendre pour des mises à jours. Ce qui me surprend c'est que cette requête ne posait aucun problème jusqu'à maintenant...ERREUR: l'opérateur n'existe pas : integer = character varying
Alors je me demande comment Postgresql gérait cette conversion auparavant? faut-il activer quelque chose pour les conversion implicites, c'est la seule piste que j'ai, mais j'ai besoin d'avis d'experts.
Merci d'avance pour vos réponses.
Bonne journée.
Partager