Vous n'êtes pas identifié(e).
Pages : 1
Merci à tous de vous être penchés sur le probleme.
Nous avons posé la question sur d'autres forums, il n'y a apparement pas de solution simple / rapide, nous allons probablement voir avec le client pour utiliser un autre SGBD en attendant une future version de l'application qui corrigera le code SQL.
Cordialement.
Merci pour vos réponses.
Nous n'avons aucun souci sous MySQL, Oracle ou SQL Server pour insérer une chaine vide dans un champ numerique, il n'y a que postgreSQL qui nous pose ce probleme.
@Marc Cousin : la version utilisée est la 8.4. Le lien que vous m'avez donné pour CREATE CAST est bien pour la 8.4
J'ai regardé la documentation, je ne suis pas certain d'avoir bien compris.
En gros il faudrait creer un type perso (par exemple mynumeric) et l'assigner a tout mes champs de type numeric, c'est a dire modifier la structure de toutes mes tables ?
puis faire un CREATE CAST (toto AS numeric) WITH FUNCTION doMyCast(toto) AS IMPLICIT;
avec le code de la fonction equivalent à :
function doMyCast(toto)
{
if (toto =='') {
return NULL
} else {
return toto
}
}
et cette "conversion/transtypage" serait automatique sur toute la base ?
Je ne comprends pas .
@flo : Nous avons pensé à la solution du trigger mais il faudrait mettre un trigger sur toutes les tables, il y en a beaucoup c'est lourd, et celà affecterait beaucoup les performances .
Merci de votre aide.
Merci pour votre réponse.
À quelle valeur numérique pourrait on faire correspondre une chaîne vide ?
J'aimerais que celà correspond à NULL.
Je sais que le probleme viens du code SQL, on me le dit sur plusieurs forums, l'application est ancienne et je n'ai pas les moyens d'optimiser tout le code SQL de l'application pour le moment, c'est pour ça que je souhaiterais trouver une solution ou un hack en attendant de pouvoir le faire.
Sinon oui, on doit pouvoir bidouiller un type qui accepte des conversions de chaîne de ce type.
Je n'ai pas trouvé comment faire, quelqu'un aurait il un exemple ?
Merci de votre aide.
Bonjour,
J'aurais besoin de votre aide SVP.
Nous avons une application PHP tournant sous MYSQL, et nous avons besoin d'utiliser PostgreSQL pour un client.
le probleme est que lorsque nous insérons des chaines vides dans un champ de type numerique, nous obtenons une erreur.
Je pense qu'il faudrait en fait utiliser NULL au lieu de la chaine vide .
Cependant nous aimerions eviter d'avoir à recoder toutes les requetes de notre application, ma question c'est de savoir s'il est possible au niveau de la structure d'une table (ou ailleur) de faire en sorte que notre colonne de type numérique accepte les valeurs vides ? ou bien les convertissent en NULL ?
J'ai regardé sur le forum, ainsi que sur google je n'ai pas trouvé grand chose.
Dans la documentation j'ai vu qu'il est possible de définir ses propres types, est il possible par exemple de creer un type basé sur numerique et de faire en sorte qu'il accepte nos valeurs vides ?
Si oui comment faire ? je n'ai trouvé de solution
Merci
Pages : 1