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 Général » extension plptyhon 3 sur Postgres 15 et python 3.10.0 » 16/08/2023 12:13:11

aristote_masamba
Réponses : 1

Bonjour,

Après des recherches sur différents forums, j'ai finalement réussi à créer l'extension plpython3u. De ce que j'ai compris la version de python  compatible avec Postgres 15 est la 3.10. J'ai copié le fichier pyhton310.dll dans mon chemin C:\Windows\System32 afin que de pouvoir créer l'extension.

Maintenant quand je souhaite faire fonctionner la fonction ci-dessous me permettant de récupérer des coordonnées géographiques d'une adresse, postgres se déconnecte systématiquement.  Voici le message d'erreur.

The application has lost the database connection:
⁃ If the connection was idle it may have been forcibly disconnected.
⁃ The application server or database server may have been restarted.
⁃ The user session may have timed out.
Do you want to continue and establish a new session

"CREATE OR REPLACE FUNCTION geocode_nominatim(address text)
RETURNS geometry
AS $$
import requests

try:
    payload = {'q': address, 'format': 'json', 'limit': 1}
    base_geocode = 'https://nominatim.openstreetmap.org/search'
    r = requests.get(base_geocode, params=payload)
    r.raise_for_status()  # Raises an exception for non-2xx responses
    result = r.json()
    if result:
        lon = result[0]['lon']
        lat = result[0]['lat']
        geom = f'SRID=4326;POINT({lon} {lat})'
    else:
        geom = None
except requests.exceptions.RequestException as e:
    # Log the error or take appropriate action
    geom = None

return geom
$$
LANGUAGE 'plpython3u';"

J'ai ouvert aussi le journal afin de comprendre les erreurs, voici la description du message

"2023-08-16 11:05:29.751 CEST [13420] LOG:  le système de bases de données a été arrêté à 2023-08-15 19:06:25 CEST
2023-08-16 11:10:29.684 CEST [10608] LOG:  début du checkpoint : time
2023-08-16 11:10:29.710 CEST [10608] LOG:  checkpoint terminé : a écrit 3 tampons (0.0%); 0 fichiers WAL ajoutés, 0 supprimés, 0 recyclés ; écriture=0.004 s, synchronisation=0.006 s, total=0.028 s; fichiers synchronisés=2, plus long=0.004 s, moyenne=0.003 s; distance=0 kB, estimation=0 kB
2023-08-16 11:13:36.931 CEST [12000] LOG:  n'a pas pu recevoir les données du client : unrecognized winsock error 10054
2023-08-16 11:13:36.931 CEST [1676] LOG:  n'a pas pu recevoir les données du client : unrecognized winsock error 10054
2023-08-16 11:13:36.934 CEST [4044] LOG:  n'a pas pu recevoir les données du client : unrecognized winsock error 10054
2023-08-16 11:15:29.707 CEST [10608] LOG:  début du checkpoint : time
2023-08-16 11:15:29.939 CEST [10608] LOG:  checkpoint terminé : a écrit 3 tampons (0.0%); 0 fichiers WAL ajoutés, 0 supprimés, 0 recyclés ; écriture=0.215 s, synchronisation=0.005 s, total=0.232 s; fichiers synchronisés=3, plus long=0.002 s, moyenne=0.002 s; distance=2 kB, estimation=2 kB
2023-08-16 11:15:30.874 CEST [12596] FATAL:  authentification par mot de passe échouée pour l'utilisateur  « postgres »
2023-08-16 11:15:30.874 CEST [12596] DÉTAIL:  La connexion correspond à la ligne 89 du pg_hba.conf : « host    all             all             ::1/128                 scram-sha-256 »
Python path configuration:
  PYTHONHOME = (not set)
  PYTHONPATH = (not set)
  program name = 'python'
  isolated = 0
  environment = 1
  user site = 1
  import site = 1
  sys._base_executable = 'C:\\Program Files\\PostgreSQL\\15\\bin\\postgres.exe'
  sys.base_prefix = ''
  sys.base_exec_prefix = ''
  sys.platlibdir = 'lib'
  sys.executable = 'C:\\Program Files\\PostgreSQL\\15\\bin\\postgres.exe'
  sys.prefix = ''
  sys.exec_prefix = ''
  sys.path = [
    'C:\\WINDOWS\\SYSTEM32\\python310.zip',
    '.\\DLLs',
    '.\\lib',
    'C:\\Program Files\\PostgreSQL\\15\\bin',
  ]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'"

J'ai l'impression que postgresl n'arrive pas à se connecter correctement à python 3.10 alors que dans les variables d'environnements j'ai bien ajouté les chemin d'accès python. Si qqun à déja eu ce problème, pourrait-il m'aider svp ?

#2 Général » Afficher les valeurs égales à 0 » 10/01/2017 22:48:29

aristote_masamba
Réponses : 2

Bonjour à tous,

Sur Postgres, je dispose de deux tables une table :

-Sur la première j'ai l'ensemble des départements et certains indicateurs (population, nb d'avc, nb de cancer, etc)

-Sur la deuxième table, j'ai la liste des unités neuro vasculaire en France métropolitaine mais juste les départements qui comptabilisent des unv et donc seulement 67 départements

Donc j'ai réalisé une requête count avec ces deux tables jointes, jusque là aucun problème.

mais moi je souhaite que ma requête me retourne aussi les valeurs égales à 0.

Car certains départements n'ont pas d'unités neuro vasculaires.

J'ai 96 départements mais que 67 lignes.

Comment je pourrais remédier à ce problème ?

Voici mon essai mais la requête me retourne que 67 lignes

 SELECT fichier_principal.code_dep, NULLIF(count(chu),0) 
 FROM unv LEFT JOIN fichier_principal ON fichier_principal.code_dep=dep
 GROUP BY fichier_principal.code_dep

Merci d'avance.

Cordialement,

#3 Re : Général » Importer un fichier csv avec un colonne date » 08/01/2017 21:53:56

Bonsoir je comprends pas ce que vous demandez, je suis novice désolé.

#4 Re : Général » Importer un fichier csv avec un colonne date » 07/01/2017 14:09:36

OK excusez-moi

C'est la ligne 2, colonne embauche

Voici le message d'erreur :

ERREUR: syntaxe en entrée invalide pour le type date : "{26/03/2000}"
CONTEXT: COPY emp, ligne 2, colonne embauche : "{36611}"

Cordialement,

#5 Re : Général » Importer un fichier csv avec un colonne date » 07/01/2017 13:56:29

Bonjour et merci pour votre réponse

Voici la déclaration et la ligne qui pose problème est en gras

CREATE TABLE emp
(
  no_emp character(255),
  nom character(255),
  prenom character(255),
embauche date,
  nosupr character(255),
  titre character(255),
  no_dept character(255),
  salaire numeric,
  tx_comission numeric

Cordialement,

#6 Général » Importer un fichier csv avec un colonne date » 07/01/2017 13:38:52

aristote_masamba
Réponses : 7

Bonjour et bonne année à tous,

Je me permets de vous contacter car je rencontre un petit problème lors d'une importation d'un fichier csv dans postgres.

Donc mon fichier excel comprend 9 colonnes dont une de type de données date.

Lors de ma création de table dans Postgres, j'ai bien spécifié que le type de données pour cette colonne est une date mais à chaque fois que j'essaye d'importer ce fichier un message d'erreur s'affiche. Voici, ci-dessous, ce message d'erreur.

ERREUR: tableau litéral mal formé :"26/03/2000"
DETAIL: La valeur du tableau doit commencer avec "{" ou avec l'information de la dimension.
CONTEXT: COPY EMP, ligne 2, colonne embauche : "26/03/2000"

Quelle est le bon type de données à ajouter dans postgres pour que l'importation de mon fichier fonctionne ?


Merci d'avance.

Cordialement,

Pied de page des forums

Propulsé par FluxBB