IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

Select Extract invalide


Sujet :

Requêtes PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut Select Extract invalide
    Bonjour,

    Je suis en train de migrer une petite base de MySQL vers PostgreSQL, mais je bloque sur un exemple simple.
    Dans une procédure, je souhaite, déterminer un signe astrologique à partir de la date de naissance. Pour cela, je veux extraire le jour et le mois depuis un Timestamp. Après plusieurs tentatives, j'ai fait l'essai sur un code estrait directement de la doc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');
    ERREUR: erreur de syntaxe sur ou près de « EXTRACT »
    État SQL :42601
    Caractère : 187
    Contexte : nom de type « EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40') » invalide
    Afin de m'aider à orienter mes recherches, y a-t-il une config à faire ? C'est bizarre de planter sur un exemple du site...

    Merci à vous

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    Quelle version de PostGreSQL ?
    perso en 8.3, ça passe sans soucis
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    Quelle version de PostGreSQL ?
    perso en 8.3, ça passe sans soucis
    La dernière : La 9.2

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Bonjour,

    vous parlez d'un copier-coller, n'y a-t-il pas un caractère bizarre qui traine, genre une quote de ce style " ` " à la place de " ' ".

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Le contexte de l'erreur dit que c'est au caractère 187.
    Or il y a moins de 187 caractères dans cette requête, qui par elle-même, passe très bien.

    Elle doit être accolée à quelque chose d'autre qui est passé avant. Peut-être une mauvaise utilisation de l'outil de requêtage?

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 540
    Par défaut
    Citation Envoyé par asmduty Voir le message
    Bonjour,

    vous parlez d'un copier-coller, n'y a-t-il pas un caractère bizarre qui traine, genre une quote de ce style " ` " à la place de " ' ".
    Non c'est bien une simple quote (touche du 4).

    Pour précision, au cas où, voici ce qu'il y a avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE FUNCTION determinerSigneAstro (dateNaissance TIMESTAMP) RETURNS VARCHAR AS $$
        DECLARE signeAstroDetermine CHAR(21);
        DECLARE mois INTEGER;
        DECLARE jour INTEGER;
    SELECT EXTRACT(MONTH FROM TIMESTAMP `2001-02-16 20:38:40`);
        SELECT EXTRACT (MONTH FROM TIMESTAMP dateNaissance);

  7. #7
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Par défaut
    euh, je verrais plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE FUNCTION determinerSigneAstro (dateNaissance TIMESTAMP) RETURNS VARCHAR AS $$
        DECLARE 
            signeAstroDetermine CHAR(21);
            mois INTEGER;
            jour INTEGER;
    BEGIN
    SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40') INTO mois;
        SELECT EXTRACT (MONTH FROM TIMESTAMP dateNaissance) INTO mois;
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de requête avec select extract
    Par sacan dans le forum Informix
    Réponses: 5
    Dernier message: 17/03/2013, 09h38
  2. [MySQL] [MaxDB] select - Invalid keyword or missing delimiter
    Par nicoda dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 07/02/2008, 13h08
  3. fonction select invalide
    Par jpbv1 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 15/06/2007, 20h03
  4. [PHP-JS] Extraction de données à partir d'un select
    Par Le Rebel dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 10h11
  5. [SQL] extraction des différences de 2 select
    Par toxine dans le forum Langage SQL
    Réponses: 8
    Dernier message: 12/08/2005, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo