PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 24/03/2022 01:03:37

Charle
Membre

ERROR: invalid input syntax for type numeric: " "

Bonjour,
J'ai cettte erreur : ERROR:  invalid input syntax for type numeric: " "
Quand j'execute cette requette.


WITH inscription_diplome AS (
         SELECT inscription_diplome_1.apprenant_id,
            inscription_diplome_1.objet_id AS inscription_diplome_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_diplome_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_diplome_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544676
        ), inscription_annee_entree AS (
         SELECT inscription_annee_entree_1.apprenant_id,
            inscription_annee_entree_1.objet_id AS inscription_annee_entree_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_annee_entree_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_annee_entree_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544678
        ), inscription_promo AS (
         SELECT inscription_promo_1.apprenant_id,
            inscription_promo_1.objet_id AS inscription_promo_id,
            groupe_diplome_1.programme_id
           FROM t_inscriptions_programme inscription_promo_1
             JOIN t_groupes groupe_diplome_1 ON groupe_diplome_1.objet_id = inscription_promo_1.groupe_id AND groupe_diplome_1.type_groupe_id = 1544677
        ), inscription_session AS (
         SELECT inscription_session_1.apprenant_id,
            inscription_session_1.objet_id AS inscription_session_id,
            groupe_session.programme_id,
            to_number("substring"("substring"(groupe_session.code::text, '_(.*)'::text), '(.*?)_'::text), '9999'::text) AS annee_entree,
            session_concours.source_id AS concours_id,
            campus_session.objet_id AS campus_session_id
           FROM t_inscriptions_programme inscription_session_1
             JOIN t_groupes groupe_session ON groupe_session.objet_id = inscription_session_1.groupe_id AND groupe_session.type_groupe_id = 4737139
             JOIN t_relations session_concours ON session_concours.dest_id = groupe_session.objet_id AND session_concours.relation_nom::text = 'concours-groupe§4802331'::text
             LEFT JOIN t_entites campus_session ON campus_session.objet_id = groupe_session.entite_id
        )
SELECT DISTINCT apprenant.objet_id AS apprenant_id,
    cours.code AS concours_code,
    upper(apprenant.ind_nom::text) AS ind_nom,
    upper(apprenant.ind_nom_conjoint::text) AS ind_nom_conjoint,
    initcap(apprenant.ind_prenom::text) AS ind_prenom,
    initcap(apprenant.ind_autres_prenoms::text) AS ind_autres_prenoms,
    concours.objet_id AS concours_id,
    programme.objet_id AS programme_id,
    programme.code AS programme_code,
    modeleescp_client.code AS modele_code,
    groupe_diplome.objet_id AS groupe_diplome_id,
    ecole_partenaire.objet_id AS ecole_partenaire_id,
    ecolepartenaire_client.libelle AS ecole_partenaire_libelle,
    campus_concours.objet_id AS campus_concours_id,
    campus_entree.objet_id AS campus_entree_id,
    inscription_session.campus_session_id,
    moded_admission_client.objet_id AS mode_admission_id,
    moded_admission_client.code AS mode_admission_code,
        CASE
            WHEN programme.code::text = 'LABEX'::text THEN d1.attribut_valfloat::integer + 1
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 1
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) = 2178486 THEN d1.attribut_valfloat::integer
            WHEN moded_admission_client.code::text = 'BACHELOR_2'::text THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer
        END AS annee_entree,
        CASE
            WHEN programme.code::text = 'EMBA'::text AND (moded_admission_client.code::text <> ALL (ARRAY['EMBASI'::character varying::text, 'GMPSI'::character varying::text])) THEN '01-01-'::text
            WHEN programme.code::text = ANY (ARRAY['MMK'::character varying::text, 'LABEX'::character varying::text]) THEN '01-01-'::text
            ELSE '01-09-'::text
        END ||
        CASE
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 1
            WHEN programme.code::text = 'MIM'::text AND ecole_partenaire.objet_id = 2178486 THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer
        END AS date_entree,
        CASE
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) = 2178486 THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIM'::text AND COALESCE(ecole_partenaire.objet_id, 0) <> 2178486 THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MMK'::text THEN inscription_session.annee_entree::integer + 2
            WHEN programme.code::text = 'BC'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'IFF'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'IWM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MC'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'RH'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MEM'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'LABEX'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MUS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MEI'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MBS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MIS'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'MDT'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'EMIB'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'BACHELOR'::text AND moded_admission_client.code::text = 'BACHELOR'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'BACHELOR'::text AND moded_admission_client.code::text = 'BACHELOR_2'::text THEN d1.attribut_valfloat::integer + 2
            WHEN programme.code::text = 'DOCT'::text THEN d1.attribut_valfloat::integer + 3
            WHEN programme.code::text = 'MBAM'::text AND moded_admission_client.code::text = 'CP'::text THEN d1.attribut_valfloat::integer
            ELSE d1.attribut_valfloat::integer + 1
        END AS promo,
    inscription_diplome.inscription_diplome_id,
    inscription_annee_entree.inscription_annee_entree_id,
    inscription_promo.inscription_promo_id
   FROM t_individus apprenant
     JOIN t_inscriptions_concours inscription_concours ON inscription_concours.apprenant_id = apprenant.objet_id
     JOIN t_statuts_inscription statut_inscription ON statut_inscription.objet_id = inscription_concours.statut_inscription_id
     JOIN t_concours concours ON concours.objet_id = inscription_concours.concours_id AND NOT concours.obsolete
     JOIN t_cours cours ON cours.objet_id = concours.cours_id AND NOT cours.obsolete
     LEFT JOIN inscription_session ON inscription_session.apprenant_id = apprenant.objet_id AND inscription_session.concours_id = concours.objet_id
     LEFT JOIN t_relations r1 ON r1.source_id = concours.objet_id AND r1.relation_nom::text = 'concours-programme§1344524'::text
     JOIN t_programmes programme ON programme.objet_id = COALESCE(r1.dest_id, inscription_session.programme_id)
     JOIN t_relations r7 ON r7.source_id = programme.objet_id AND r7.relation_nom::text = 'programme-modeleescp.client§45161'::text
     JOIN t_objets modeleescp_client ON modeleescp_client.objet_id = r7.dest_id AND modeleescp_client.type::text = 'modeleescp.client'::text
     JOIN t_groupes groupe_diplome ON groupe_diplome.programme_id = programme.objet_id AND groupe_diplome.type_groupe_id = 1544676
     LEFT JOIN t_relations r2 ON r2.source_id = apprenant.objet_id AND r2.relation_nom::text = 'individu-ecolepartenaire.client§1738915'::text
     LEFT JOIN t_objets ecolepartenaire_client ON ecolepartenaire_client.objet_id = r2.dest_id AND ecolepartenaire_client.type::text = 'ecolepartenaire.client'::text
     LEFT JOIN t_relations r3 ON r3.source_id = ecolepartenaire_client.objet_id AND r3.relation_nom::text = 'ecolepartenaire.client-entite§5385671'::text
     LEFT JOIN t_entites ecole_partenaire ON ecole_partenaire.objet_id = r3.dest_id
     LEFT JOIN t_entites campus_concours ON campus_concours.objet_id = cours.entite_id
     LEFT JOIN t_relations r4 ON r4.source_id = inscription_concours.objet_id AND r4.relation_nom::text = 'inscription_concours-campus_langue.client§2091006'::text
     LEFT JOIN t_objets campus_langue_client ON campus_langue_client.objet_id = r4.dest_id AND campus_langue_client.type::text = 'campus_langue.client'::text
     LEFT JOIN t_relations r5 ON r5.source_id = campus_langue_client.objet_id AND r5.relation_nom::text = 'campus_langue.client-entite§5413758'::text
     LEFT JOIN t_entites campus_entree ON campus_entree.objet_id = r5.dest_id
     LEFT JOIN t_relations r6 ON r6.source_id = concours.objet_id AND r6.relation_nom::text = 'concours-moded_admission.client§1739862'::text
     LEFT JOIN t_objets moded_admission_client ON moded_admission_client.objet_id = r6.dest_id AND moded_admission_client.type::text = 'moded_admission.client'::text
     LEFT JOIN t_donnees_float d1 ON d1.objet_id = concours.objet_id AND d1.attribut_id = 10738461
     LEFT JOIN inscription_diplome ON inscription_diplome.apprenant_id = apprenant.objet_id AND inscription_diplome.programme_id = programme.objet_id
     LEFT JOIN inscription_annee_entree ON inscription_annee_entree.apprenant_id = apprenant.objet_id AND inscription_annee_entree.programme_id = programme.objet_id
     LEFT JOIN inscription_promo ON inscription_promo.apprenant_id = apprenant.objet_id AND inscription_promo.programme_id = programme.objet_id
  WHERE apprenant.est_apprenant AND (apprenant.objet_id <> ALL (ARRAY[93693, 2486988, 4797296])) AND (statut_inscription.code::text = ANY (ARRAY['CONFIRME'::character varying::text, 'CAN_ADMIS_CONDITION_CONFIRME'::character varying::text])) AND (inscription_diplome.inscription_diplome_id IS NULL OR inscription_annee_entree.inscription_annee_entree_id IS NULL OR inscription_promo.inscription_promo_id IS NULL);

Pourriez vous m'aider?
Cordialement.

Hors ligne

#2 24/03/2022 04:23:52

rjuju
Administrateur

Re : ERROR: invalid input syntax for type numeric: " "

L'erreur devrait indiquer l'emplacement dans la requête où le problème se produit.  Sinon, je ne vois pas comment on pourrait aider sans la définition des tables associées.

Hors ligne

#3 24/03/2022 09:42:44

Charle
Membre

Re : ERROR: invalid input syntax for type numeric: " "

Bonjour rjuju,
Merci pour ta reponse en effet  pg ne donne pas la ligne sur laquelle l'erreur se trouve.
J'ai juste dans la console:

ERROR: invalide impute syntaxe for type numeric: " "
*********Error**********

ERROR: invalide impute syntaxe for type numeric: " "
SQL state: 22P02


Pourriez vous m'aider?

Hors ligne

#4 24/03/2022 10:33:08

rjuju
Administrateur

Re : ERROR: invalid input syntax for type numeric: " "

Essayez avec psql, sinon il faut fournir de quoi reproduire le problème de 0.

Hors ligne

#5 24/03/2022 12:40:33

dverite
Membre

Re : ERROR: invalid input syntax for type numeric: " "

Cette erreur arrive quand une chaîne de caractères ne peut pas être convertie dans le type numeric.
Si on regarde dans la requête ce qui convertit de texte vers numérique, cette expression semble à suspecter en premier:

to_number("substring"("substring"(groupe_session.code::text, '_(.*)'::text), '(.*?)_'::text), '9999'::text) AS annee_entree,

Ici il suffirait qu'une seule valeur de groupe_session.code ne corresponde pas au modèle attendu pour que ça échoue avec l'erreur en question.

Hors ligne

#6 17/10/2022 14:05:35

bambaqos
Membre

Re : ERROR: invalid input syntax for type numeric: " "

Bonjour
Moi je rencontre une erreur en faisant une copie de mon fichier csv .
error: ERROR:  invalid input syntax for type integer: "1"

Merci de votre feed back.

Hors ligne

#7 28/02/2023 14:01:05

Igorta03
Membre

Re : ERROR: invalid input syntax for type numeric: " "

Bonjour
je rencontre cette erreur: la relation « Quartier » n'existe pas
lorsque j'exécute cette requête: ALTER TABLE "Quartier" ADD CONSTRAINT "Quartier_fk0" FOREIGN KEY ("Num_arrondissement") REFERENCES "Arrondissemnt"("Num_Arr");
je ne sais comment m'en sortir. j'ai vérifié et revérifié

Hors ligne

#8 28/02/2023 14:24:53

Igorta03
Membre

Re : ERROR: invalid input syntax for type numeric: " "

Bonjour
je rencontre cette erreur: la relation « Quartier » n'existe pas
lorsque j'exécute cette requête: ALTER TABLE "Quartier" ADD CONSTRAINT "Quartier_fk0" FOREIGN KEY ("Num_arrondissement") REFERENCES "Arrondissemnt"("Num_Arr");
je ne sais comment m'en sortir. j'ai vérifié et revérifié

Hors ligne

Pied de page des forums