2017-07-04 3 views
1

J'ai peu de problème avec la fonction dans les moyens postgress. Je fonction:Fonction dans postgres avec retour de nombreuses lignes avec une valeur nulle

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; 

Lorsque j'exécute cette fonction que je prends erreur:

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

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

Que dois-je faire pour corriger exécuter cette requête et d'exécuter cette fonction ???

+1

'SELECT x, y, null :: varchar, z DE example_tab' et s'il vous plaît supprimer mysql et sql-server de balises –

Répondre

0

Vous devriez spécifier explicitement le type de données pour les nuls, comme:

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

Merci Ca marche! – Piateczka18