2016-07-13 15 views
0

Ich bin nicht in der Lage, eine einfache SQL-Funktion zu erhalten, die über Zeilen einer Tabelle läuft und Spalteninfo anzeigen Hier sehen Sie, wie die SQL-Funktion aussieht.Die SQL-Funktion konnte nicht ausgeführt werden

CREATE OR REPLACE FUNCTION iterators() RETURNS Void AS $$ 
DECLARE 
    t2_row call_records%ROWTYPE; 
BEGIN 
    FOR t2_row IN (SELECT timestamp,plain_crn INTO call_records limit 2) 
    LOOP 
    RAISE NOTICE t2_row.timestamp; 
    END LOOP 
END 
$$ LANGUAGE plpgsql; 

Aber ich bekomme immer folgende Fehler

ERROR: syntax error at or near "t2_row" 
LINE 7:  RAISE NOTICE t2_row.timestamp; 

Ich bin mir nicht sicher, welche mögliche Syntaxfehler der Code? Ist es möglich, ein etwas ausführlicheres Fehlerprotokoll zu erhalten oder zu wissen, was der Syntaxfehler im Code ist, den ich beheben muss?

Antwort

2

Anweisung RAISE erfordert Formatzeichenfolge. Es sollte trivial sein, sollte aber da sein.

RAISE NOTICE '%', t2_row.timestamp; 
+0

@Panvel Richtig? Ich habe es gefunden. – Noobie

+0

Ich bekomme Integer jetzt außer Reichweite. Irgendeine Ahnung? – Noobie

+0

@PanvelStehule. Die Zeitstempelspalte ist ein Bigint-Datentyp. – Noobie