2017-07-04 2 views
1

Ich habe ein kleines Problem mit der Funktion in postgress bedeutet. Ich habe Funktion:Funktion in Postgres mit Rückgabe viele Zeilen mit einigen Null-Wert

CREATE OR REPLACE FUNCTION test(
    x integer, 
    y character varying, 
    z character varying 
) 
RETURNS TABLE(x1 int, y1 varchar,n1 varchar,z1 varchar) AS 
$BODY$ 
BEGIN 
    RETURN QUERY 
SELECT x,y,null,z FROM example_tab    
END; 
$BODY$ 
    LANGUAGE plpgsql VOLATILE 
    COST 100 
    ROWS 1000; 

Wenn ich diese Funktion ausführen Ich nehme Fehler:

Error: Returned type unknown does not match expected type character varying in column 3. 

SELECT * FROM test(694531020,'t'::varchar,'t'::varchar) 

Was soll ich diese Abfrage korrekt ausgeführt werden tun, um diese Funktion ausführen und ???

+1

SELECT x, y, null :: varchar, z FROM example_tab' und bitte MySQL und SQL-Server-Tags –

Antwort

0

sollten Sie explizit Datentyp für null angeben, wie:

CREATE OR REPLACE FUNCTION test(
    x integer, 
    y character varying, 
    z character varying 
) 
RETURNS TABLE(x1 int, y1 varchar,n1 varchar,z1 varchar) AS 
$BODY$ 
BEGIN 
    RETURN QUERY 
SELECT x,y,null::varchar,z FROM example_tab    
END; 
$BODY$ 
    LANGUAGE plpgsql VOLATILE 
    COST 100 
    ROWS 1000; 
+0

Dank Es funktioniert entfernen! – Piateczka18

Verwandte Themen