Funktion ohne Namen angelegt und kann diese nicht löschen

Hallo,

ich beschäftige mich gerade mit Funktionen und Triggern und habe zum testen von dieser Seite Triggerprozeduren einfach mal die Funktion “mitarbeiter_prüfung” kopiert und über den pgadmin III angelegt. Schätze da hat sich beim kopieren irgendwie ein sonderzeichen eingeschlichen denn er hat die funktion jetzt ohne Namen angelegt.

Ich schaff es jetzt leider nicht diese namenlose funktion zu löschen, jemand eine idee wie das zu machen ist?
Anbei ein screenshot aus dem pgadmin.

mfg

Du guggst in pg_proc:

select oid, proname, prosrc from pg_proc order by oid desc;

Da findest Du auch den Namen der Funktion. Sie hat einen, da pg_proc ein NOT NULL auf proname hat.


Andreas

Hallo Andreas,

hm, scheint leider bei mir nicht der Fall zu sein, proname wird zumindest leer angezeigt.
Aber ich kann doch einfach ein update über die oid auf der Tabelle machen und einen Namen reinsetzen, oder?
Dann sollte ich den Trigger dann sauber löschen können.

grüße

added: lenght(proname) zeigt 18 an.

dann sind es wohl 18 Leerzeichen als Name.

Andreas

Danke, direktes umbenennen in der pg_proc lässt das löschen wieder zu.

Waa, mach das nicht wieder :wink:

Du hättest auch

DROP FUNCTION “<18 Leerzeichen” (…)

machen können.
Aber änder bitte nie wieder etwas in den Systemtabellen, außer du weißt sehr genau, was du tust.

ACK.


Andreas