Vous n'êtes pas identifié(e).
Pages : 1
I get it!!
il fallait s'assurer que Python sorte bien "T_Employes" et non juste T_Employes, et cela est possible par la déclaration TableTest2 = ('"T_Employes"').
c'est documenté ici:
https://www.postgresql.org/docs/current … DENTIFIERS
Donc, merci.
Bonjour rjuju,
Merci pour ta réponse rapide, et pour la petite correction.
Bon, actuellement, après redémarrage de mon pc et création de la table 'test', je n'ai plus l'erreur sur la table 'test'.
Par contre, j'obtiens de nouveau l'erreur si je t'ente d'accéder dans la même base de données à la table 'T_employes', avec la syntaxe suivante:
Select * from T_employes
et si je met les guillemets, select * from "T_employes" , je n'ai plus d'erreur. (Je pensais pourtant avoir effectué les mêmes test hier, avec échec.
J'en conclus que le souci provient des guillemets... obligatoires qd on utilise le symbole '_' sur les noms de tables.
---
Reste donc, l'exécution de cette requête depuis Python :
Avec le code suivant:
###########################################################
################ CONNEXION A 2 EME BD = ECHEC ###########
###########################################################
# Credentials 1:
Server_postgres = ("localhost")
Port2 = 5432
Login2 = 'openpg'
Password2 = 'Password123'
dbname2 = "basedonnées2"
TableTest2 = "test"
# CONNEXION A LA BD
connect2 = psycopg2.connect(database=dbname2, user=Login2, password=Password2)
if connect2:
cursor2 = connect2.cursor()
print(" \nConnexion établie avec succès vers Base de données 2:", dbname2)
# Requete SQL
req2 = ('SELECT * from {}'.format(TableTest2))
# Exécution de la requête
cursor2.execute(req2)
# Sortie à l'écran
print(" ###### Résultat de la Requête 2 : #######")
data2 = cursor2.fetchall()
for entry2 in data2:
print(entry2)
print("###############################################")
print("\n\n----------------------------------------------------")
print("\n\n")
# Fermeture de la connexion
cursor2.close()
connect2.close
- Lorsque TableTest2 = "test" je n'ai pas d'erreur,
- Et, lorsque TableTest2 = "T_Employes" j'obtiens l'erreur:
Connexion établie avec succès vers Base de données 2: basedonnées2
Traceback (most recent call last):
File "C:/Users/.../database_sqlsrv.py", line 62, in <module>
cursor2.execute(req2)
psycopg2.ProgrammingError: ERREUR: la relation « t_employes » n'existe pas
LINE 1: SELECT * from T_Employes
^
Process finished with exit code 1
Je dois donc découvrir, je crois, comment forcer Python à renvoyer
"LINE 1: SELECT * from "T_Employes"" (avec les guillemets sur "T_employes" au lieu de "LINE 1: SELECT * from T_Employes".
une aide sur cet aspect serait la buienvenue.
merci à vous
Bonjour à tous,
Je débute en postgresSQL et en Python.
Je voudrais savoir pourquoi j'obtiens l'erreur suivante:
Connexion établie avec succès vers Base de données 2: basedonnées2
Traceback (most recent call last):
File "C:/Users/.../PycharmProjects/.../database_sqlsrv.py", line 62, in <module>
cursor2.execute(req2)
psycopg2.ProgrammingError: ERREUR: la relation « test » n'existe pas
LINE 1: SELECT * from test
^
Process finished with exit code 1
Je poste ici parceque je pense qu'il s'agit d'une erreur Postgresql et non Python.
Voici mon environnement:
OS Windows 8
PostgreSQL 9.5.8
Pgadmin 3
Python 3.7.1 et PyCharm 2018.3
+ Psycopg2 pour Interconnexion de Python et PostgreSQL
Donc,
Je tente d'établir deux connexions distinctes (avec des paramètres distincts mais exactement le même code) sur deux bases de données du même serveur depuis Python (en utilisant Pycharm) via le script ci-dessous.
L'une des connexions s'établie sans souci, mais l'autre non.
le message d'erreur indique :
psycopg2.ProgrammingError: ERREUR: la relation « test » n'existe pas
LINE 1: SELECT * from test
Le fait est qie j'obtien exactement le même message d'erreur avec pgAdmin 3, si je vais dans l'interpréteur SQL pour la BD à problème (sauf si j'utilise le créateur de requête graphique), et ce n'est pas le cas sur la VB qui ne pose pas de pb...
Voici le code Python
import psycopg2
###########################################################
################ CONNEXION A 1 ERE BD = OK ###########
###########################################################
# Credentials 1:
Server_postgres = ("localhost")
Port = 5432
Login = 'openpg'
Password = 'Password123'
dbname = "basedonnée1"
TableTest1 = "djangotable"
# CONNEXION A LA BD 1
connect = psycopg2.connect(database=dbname, user=Login, password=Password)
if connect:
cursor = connect.cursor()
print(" \nConnexion établie avec succès vers Base de données 1 : ", dbname)
# Requete SQL
req = ('SELECT * from {}'.format(TableTest1))
# Exécution de la requête
cursor.execute(req)
# Sortie à l'écran
print(" ###### Résultat de la Requête 1 : #######")
data = cursor.fetchall()
for entry in data:
print(entry)
# Fermeture de la connexion
cursor.close()
connect.close
print("###############################################")
print("\n\n----------------------------------------------------")
print("\n\n")
###########################################################
################ CONNEXION A 2 EME BD = ECHEC ###########
###########################################################
# Credentials 1:
Server_postgres = ("localhost")
Port2 = 5432
Login2 = 'openpg'
Password2 = 'Password123'
dbname2 = "basedonnée2"
TableTest2 = "test"
# CONNEXION A LA BD
connect2 = psycopg2.connect(database=dbname2, user=Login2, password=Password2)
if connect:
cursor2 = connect2.cursor()
print(" \nConnexion établie avec succès vers Base de données 2:", dbname2)
# Requete SQL
req2 = ('SELECT * from {}'.format(TableTest2))
# Exécution de la requête
cursor2.execute(req2)
# Sortie à l'écran
print(" ###### Résultat de la Requête 2 : #######")
data2 = cursor2.fetchall()
for entry2 in data2:
print(entry2)
print("###############################################")
print("\n\n----------------------------------------------------")
print("\n\n")
# Fermeture de la connexion
cursor2.close()
connect2.close
et voici le log sur la console Python:
"C:\....\venv\Scripts\python.exe" "C:/Users/.../PycharmProjects/.../database_postgresql.py"
Connexion établie avec succès vers Base de données 1 : djangodb
###### Résultat de la Requête 1 : #######
(1, 'Toto')
(2, 'Tata')
(3, 'Titi')
###############################################
----------------------------------------------------
Connexion établie avec succès vers Base de données 2: basedonnées2
Traceback (most recent call last):
File "C:/Users/.../PycharmProjects/.../database_sqlsrv.py", line 62, in <module>
cursor2.execute(req2)
psycopg2.ProgrammingError: ERREUR: la relation « test » n'existe pas
LINE 1: SELECT * from test
^
Process finished with exit code 1
sur postgressSQL (via pgAdmin 3) l'erreur apparait come suit:
ERREUR: la relation « test » n'existe pas
LINE 1: select * from test
^
********** Erreur **********
ERREUR: la relation « test » n'existe pas
État SQL :42P01
Caractère : 15
Merci pour votre aide.
Pages : 1