Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 26/02/2011 14:06:58
- big chris
- Membre
pg_catalog et ses fonctions
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
#2 26/02/2011 21:28:16
- Marc Cousin
- Membre
Re : pg_catalog et ses fonctions
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
#3 28/02/2011 10:40:20
- big chris
- Membre
Re : pg_catalog et ses fonctions
bien compris,
mais par rapport a ce problème, que me conseilles-tu???
Hors ligne
#4 28/02/2011 12:10:45
- Marc Cousin
- Membre
Re : pg_catalog et ses fonctions
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
#5 28/02/2011 14:12:10
- big chris
- Membre
Re : pg_catalog et ses fonctions
merci marc, je te tiens au courant...
Hors ligne
#6 28/02/2011 14:33:54
- big chris
- Membre
Re : pg_catalog et ses fonctions
au fait cette conversion devra se faire dans mes requettes?
Hors ligne
#7 28/02/2011 14:50:29
- Marc Cousin
- Membre
Re : pg_catalog et ses fonctions
Oui.
Marc.
Hors ligne
#8 01/03/2011 09:42:02
- big chris
- Membre
Re : pg_catalog et ses fonctions
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
#9 01/03/2011 09:55:56
- Marc Cousin
- Membre
Re : pg_catalog et ses fonctions
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