Was genau steht denn im Log der Datenbank?
hallo zusammen,
ich hoffe ihr könnt mir helfen.
im laufe eines serverumzuges haben wir postgresql von version 7.3 auf 8.3 upgedatet, doch jetzt gibt es probleme mit einem bestimmten select.
wenn ich diesen befehl in z.b. pgadmin eingebe bekomme ich wie gewünscht eine auflistung der ergebnisse.Code:select distinct nachname, vorname, fhuserlogin, bezeichnung from benutzer, fachbereichsberechtigungen, fachbereiche where benutzer.virtcampusid = fachbereichsberechtigungen.virtcampusid and fachbereichsberechtigungen.fachbereichsnummer = fachbereiche.fachbereichsnummer order by benutzer.nachname, benutzer.vorname, fachbereiche.bezeichnung;
in php sieht das ganze so aus:
$db enthält den korrekten connect-string, aber ich bekomme als rückgabe nurPHP-Code:$res = $db->query('select distinct nachname, vorname, fhuserlogin, bezeichnung from benutzer, fachbereichsberechtigungen, fachbereiche where benutzer.virtcampusid = fachbereichsberechtigungen.virtcampusid and fachbereichsberechtigungen.fachbereichsnummer = fachbereiche.fachbereichsnummer order by benutzer.nachname, benutzer.vorname, fachbereiche.bezeichnung');
99% der übrigen selects in der gesamten anwendung funktionieren, und dieser hier funktioniert auch auf der alten postgresql db v.7.3.Code:DB Error: unknown error
ich danke schonmal für eure hilfe.
Was genau steht denn im Log der Datenbank?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
das logfile sagtCode:ANWEISUNG: select distinct benutzer.nachname, benutzer.vorname, benutzer.fhuserlogin, fachbereiche.bezeichnung from benutzer, fachbereichsberechtigungen, fachbereiche where benutzer.virtcampusid = fachbereichsberechtigungen.virtcampusid and fachbereichsberechtigungen.fachbereichsnummer = fachbereiche.fachbereichsnummer order by benutzer.nachname, benutzer.vorname, fachbereiche.bezeichnungdie datentypen stimmen aber jeweils in beiden tabellen übereinCode:FEHLER: Operator existiert nicht: character varying = integer bei Zeichen 233 TIPP: Kein Operator stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumw andlungen hinzufügen.
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Sieht so aus, als ob ihr unsauber programmiert habt.
Ein paar CASTs wurden in 8.3 entfernt, die früher funktioniert haben, aber unschön waren.
Näheres findest du hier:
Peter Eisentraut's Blog: Readding implicit casts in PostgreSQL 8.3
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen