SQL Fehler / Datenbankfehler?

Prima, dann kannst Du alle Trigger / Tabellen damit lokalisieren bzw. die jeweilige Funktion mit dem Statement von @castorp finden.
Hier kann man jeweils prüfen, ob außer Logging wirklich etwas fachliches gemacht wird und damit tatsächlich ein echtes Problem vorliegt.

Zur Behebung des ursächlichen Fehlers folgende Idee / Vorschlag:
Da die Befüllung der Variable AktLxBediener für den User mittels current_setting(...) mangels Definition vom USER_SESSION.User_Id fehlschlägt und m.E. für diese Zwecke sowieso verhältnismäßig umständlich ist, könnte man einfach

select current_user();

verwenden, also ein Funktion, die gleich den angemeldeten Benutzer zurück gibt.
Das macht natürlich nur Sinn, wenn in dieser C/S Anwendung mit spezifischen, expliziten Logins gearbeitet wird (Hoffentlich).
Bezogen auf die bis jetzt bekannte Funktion wäre das diese Änderung:

Code:
  aktlxbediener = '';
  SELECT current_user() into AktLxBediener;

Wenn der Code, der eigentlich für die ursprüngliche current_setting Variante gedacht war, nicht irgendwelchen Mapping oder so Hokuspokus macht, könnte am Ende vielleicht sogar genau das rauskommen, was rauskommen sollte.
 
Werbung:
was mir auffällt:
AktLxBediener varchar(5); in der declare von
select prosrc
from pg_proc
where proname = 'dblog_lohnabz_del';

aber
select current_user gibt: postgres zurück
was wiederrum 8 zeichen sind
 
im PHP nutze ich jetzt set user_session.user_id = '[kurz_global]' damit setzt er die ID des Users auf dessen kürzel aus der Datenbank an der der Bediener angemeldet ist. Jeder Nutzer arbeitet mit einem eigenen, eindeutigen Kürzel, das wird auch zur Anmeldung verwendet.

damit kamen jetzt keine Fehler beim insert, update und delete.
 
Sorry, die Klammern sind falsch. Da hab ich gepennt.
Aber Du hast ja schon die richtige Schreibweise entdeckt.

set user_session.user_id = '[kurz_global]' .. damit kamen jetzt keine Fehler..
Äh, wenn Du in PHP auch in Insert machst oder wie?
Ich dachte, es ist eine C/S Anwendung.

Mein Gedanke war eher:
Die Anwendung (Client) ist ja statisch und keine Eigeneentwicklung. Die Fehlerbehebung könnte mit meinem Vorschlag oder der Verbesserung von @castorp ziemlich simpel und zentral in der DB erfolgen.
 
Werbung:
Zurück
Oben