Vous n'êtes pas identifié(e).
Pages : 1
salut,
j'essaie présentement de bosser sur openelec dans sa V3 mais dans certains liens j'ai un message de ce genre:
du SGBD ERREUR: la fonction pg_catalog.substring(date, integer, integer) n'existe pas LINE 1: ...lisateur,mandant,(a.nom||' - '||a.prenom||' - '||(substring(... ^ HINT: Aucune fonction ne correspond au nom donné et aux types d'arguments. Vous devez ajouter des conversions explicites de type.
Erreur
DB.pear DB Error: unknown error
que faire..
?????????
Hors ligne
Aucune idée de ce que peut bien être openelec. Mais substring s'applique à une chaine de caractère, pas à une date. D'ailleurs, si les développeurs veulent extraire une partie d'une date (le jour, le mois ou l'année par exemple), utiliser substring est vraiment maladroit… il y a des fonctions d'extraction sur les dates, qui sont faites pour ça.
Le message d'erreur dit : la fonction pg_catalog.substring(date, integer, integer)
C'est normal.
marc=> \df substring
Liste des fonctions
Schéma | Nom | Type de données du résultat | Type de données des paramètres | Type
------------+-----------+-----------------------------+--------------------------------+--------
pg_catalog | substring | bit | bit, integer | normal
pg_catalog | substring | bit | bit, integer, integer | normal
pg_catalog | substring | bytea | bytea, integer | normal
pg_catalog | substring | bytea | bytea, integer, integer | normal
pg_catalog | substring | text | text, integer | normal
pg_catalog | substring | text | text, integer, integer | normal
pg_catalog | substring | text | text, text | normal
pg_catalog | substring | text | text, text, text | normal
Aucune ne correspond au prototype demandée.
Ça ressemble à une application développée avec postgresql 8.2 ou inférieure, et qui ne fonctionne plus avec des versions 8.3 ou supérieures, parce que des conversions automatiques ont été supprimées (par exemple de date vers texte).
Marc.
Hors ligne
bien compris,
mais par rapport a ce problème, que me conseilles-tu???
Hors ligne
Convertir explicitement la date en chaine de caractère (avec la fonction to_char : http://docs.postgresql.fr/9.0/functions-formatting.html ).
C'est la seule façon d'être sûr que la chaîne représentant la date a le bon format. Sinon, ce format dépend du paramétrage de la base (la variable datestyle):
marc=# SHOW datestyle ;
DateStyle
-----------
ISO, DMY
(1 row)
marc=# SELECT '2010/03/01'::date;
date
------------
2010-03-01
(1 row)
marc=# SET datestyle TO 'POSTGRES,DMY';
SET
marc=# SELECT '2010/03/01'::date;
date
------------
01-03-2010
(1 row)
Marc.
Hors ligne
merci marc, je te tiens au courant...
Hors ligne
au fait cette conversion devra se faire dans mes requettes?
Hors ligne
Oui.
Marc.
Hors ligne
g viens de trouver la solution à ce prob.
j'ai utilisé la fonction pg_catalog.to_char(date,text) dans toutes mes requètes et tout marche.
Hors ligne
Ok. Pour information, le substring sert à faire quoi ? Parce que si c'est pour sortir un jour, un mois ou une année, il y a des méthodes plus simples et plus performantes que de faire des substring…
Marc.
Hors ligne
Pages : 1