sql >> Databáze >  >> RDS >> PostgreSQL

Jak deklarovat místní proměnné v postgresql?

Postgresql historicky nepodporuje procedurální kód na úrovni příkazů – pouze v rámci funkcí. V Postgresql 9 však byla přidána podpora pro spuštění vloženého bloku kódu, který něco takového účinně podporuje, ačkoli syntaxe je možná trochu zvláštní a existuje mnoho omezení ve srovnání s tím, co můžete dělat se serverem SQL. Je pozoruhodné, že vložený blok kódu nemůže vrátit sadu výsledků, takže jej nelze použít pro to, co popisujete výše.

Obecně platí, že pokud chcete napsat nějaký procedurální kód a nechat ho vrátit výsledek, musíte ho vložit do funkce. Například:

CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
  one int;
  two int;
BEGIN
  one := 1;
  two := 2;
  RETURN one + two;
END
$$;
SELECT somefuncname();

Drátový protokol PostgreSQL, pokud vím, neumožňuje věci jako příkaz vracející více sad výsledků. Takže nemůžete jednoduše mapovat dávky T-SQL nebo uložené procedury na funkce PostgreSQL.




  1. LOAD DATA INFILE Kód chyby:13

  2. Zjistěte, proč se nepodařilo odeslat e-mail na SQL Server (T-SQL)

  3. MySQL CAST vs CONVERT

  4. převést datový typ SET MySQL na Postgres