2016-07-11 1 views
2

est-il une différence entre:Déclarez "LANGUAGE plpgsql" avant ou après le corps de la fonction?

CREATE FUNCTION func() RETURNS integer 
    LANGUAGE plpgsql AS $$ 
    declare 
    begin 
     -- do something 
    end 
$$; 

et

CREATE FUNCTION func() RETURNS INTEGER AS $$ 
    declare 
    begin 
     -- do something 
    end 
$$ LANGUAGE plpgsql; 

Est-ce que LANGUAGE plpgsql fondamentalement il suffit d'être en dehors du cadre de l'utilisation $$?

Répondre

4

Aucune différence.
Le corps de la fonction est un littéral de chaîne. Le $$ ne sont que dollar guillemets et pourrait être des guillemets simples, aussi (mais mieux citations en dollars d'utilisation!):

CREATE FUNCTION est déclaratif commande SQL DDL, et l'ordre des mots-clés est assez libre, selon definition in the manual. (Les mots clés dans les accolades dans la définition de commande peuvent être arrangés librement, mais pas le reste).