Hallo,
ich bin gerade dabei das hr Schema von Oracle für PostgreSQL 8.1 nutzbar zu machen. Leider habe ich leichte Probleme mit der Ertellung von Functions.
original Oracle Function
CREATE OR REPLACE PROCEDURE secure_dml
IS
BEGIN
IF TO_CHAR (SYSDATE, ‘HH24:MI’) NOT BETWEEN ‘08:00’ AND ‘18:00’
OR TO_CHAR (SYSDATE, ‘DY’) IN (‘SAT’, ‘SUN’) THEN
RAISE_APPLICATION_ERROR (-20205,
‘You may only make changes during normal office hours’);
END IF;
END secure_dml;
/
CREATE OR REPLACE TRIGGER secure_employees
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
secure_dml;
END secure_employees;
/
meine PL/PGSQL Variante
CREATE OR REPLACE FUNCTION secure_dml() RETURNS trigger AS ’
BEGIN
IF TO_CHAR(current_timestamp,‘HH24:MI’) NOT BETWEEN ‘08:00’ AND ‘18:00’
OR TO_CHAR (current_timestamp, ‘DY’) IN (‘SAT’, ‘SUN’)
THEN
RAISE EXCEPTION ‘‘You may only make changes during normal office hours.’’;
END IF;
END;
’ LANGUAGE plpgsql;
Wenn ich im psql die SQL Datei lade erhalte ich folgende Fehlermeldung.
ERROR: syntax error at or near “HH24” at character 101
Ich dachte das ich einen Fehler beim Aufruf der Funktion TO_CHAR gemacht habe. Aber das habe ich nicht da der Aufruf SELECT TO_CHAR(current_timestamp,‘HH24:MI’) eine korrekte Ausgabe bringt.
Danke schon einmal im Vorraus für eure Hilfe!
ciao
Andreas