Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'utilise postgresql 9.4.1-1 x64 sous Window 7 et l'ODBC Unicode x64 v 9.03.03.00
Lorsque je fais, via ODBC, une requête sur une table système (par exemple "select * from Information_Schema.Tables") j'obtiens l'erreur "la colonne « ctid » n'existe pas; Error while executing the query".
Les requêtes sur les tables créées fonctionnent bien
Hors ligne
Cela ressemble à une erreur de configuration de psqlodbc ou à un bug de psqlodbc. Quel requête est envoyée à PostgreSQL par ce driver ? (attention, je ne demande pas quelle requête vous exécutez, mais celle que reçoit PostgreSQL)
Guillaume.
Hors ligne
Désolé, je ne comprends pas le distinguo de votre question.
Hors ligne
Vous envoyez "select * from Information_Schema.Tables" au driver psqlodbc. Cette requête ne cherche pas à récupérer une colonne ctid (qui est une colonne système, donc non concernée quand on utilise l'étoile). Du coup, psqlodbc doit certainement modifier la requête pour réclamer cette colonne supplémentaire. Ou exécuter d'autres requêtes, dont une qui réclamerait cette colonne. Bref, il faudrait savoir quelle requête demande justement de cette colonne.
Guillaume.
Hors ligne
La requête est
SELECT table_name FROM information_schema.tables WHERE table_schema = 'migsite' AND table_type = 'BASE TABLE' AND table_name LIKE 'mig%'
J'ai essayé sans la clause WHERE, mais cela ne change rien. J'ai également essayé de retourner une autre colonne, ou d'en retourner plusieurs. J'ai enfin tenté SELECT 1 FROM information_schema.table.
Hors ligne
Note : Je viens d'essayer une autre table système (SELECT relname FROM pg_class) et cela fonctionne !
Existe-il des équivalents pg_xxx aux tables information_schema.table et information_schema.columns ?
Hors ligne
Je continue ...
SELECT tablename FROM pg_table renvoie la même erreur
Pour les colonnes, c'est par contre ok avec
SELECT attname FROM pg_attribute WHERE attnum > 0 AND attrelid = 'nom_schema.nom_table'::regclass AND NOT attisdropped ORDER BY attnum
Hors ligne
Vous avez une erreur à chaque fois que vous cherchez à lire une vue. Vous n'avez pas d'erreur avec les tables. Bref, ça ressemble à un bug du driver psqlodbc.
Guillaume.
Hors ligne
À priori le problème n'est pas vraiment nouveau, ni facile à régler. Par exemple: http://www.postgresql.org/message-id/40 … hemesh.biz
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1