pgplsql: SELECT EXTRACT(...) functioniert nicht

Chocobanana

Erfahrenes Mitglied
Hi Leute,

ich ärger mich nun schon ziemlich lange mit einem seltsamen Fehler herum und komme einfach nicht dahinter :-(

Ich habe eine (hier stark vereinfachte) PostgreSQL Trigger Funktion die wie folgt aussieht:
Code:
CREATE OR REPLACE FUNCTION somegeo()
  RETURNS trigger AS
$BODY$
    DECLARE
	pretxtime timestamp with time zone := current_timestamp(0);
	txtime bigint;
    BEGIN
	SELECT EXTRACT(EPOCH FROM TIMESTAMP pretxtime) INTO txtime;
    END;
$BODY$

Was ich aber nicht loswerde ist die folgende Fehlermeldung:

Code:
ERROR:  syntax error at or near "$1"
LINE 1: SELECT EXTRACT(EPOCH FROM TIMESTAMP  $1 )

pretxtime hat ein valides Datum, das habe ich über RAISE NOTICE überprüft. Wenn ich anstatt pretxtime einen Timpestamp-String verwendet klappt es auch... aber wieso mit der Variable nicht?

Danke schon mal und vg,
Martin
 
Ich kanns wirklich nicht glauben.... wenn man eine pgplsql Variable verwendet dann muss der Zusatz "TIMESTAMP WITH TIMEZONE" hinten dran. Das hat das Problem ausgelöst. Also hier die korrekte Zeile damit das funktioniert:
Code:
txtime := EXTRACT(EPOCH FROM pretxtime::TIMESTAMP WITH TIME ZONE);
 
Zurück