sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan erklærer man lokale variabler i postgresql?

Postgresql understøtter historisk set ikke procedurekode på kommandoniveau - kun inden for funktioner. I Postgresql 9 er der dog tilføjet support til at udføre en inline kodeblok, der effektivt understøtter sådan noget, selvom syntaksen måske er lidt mærkelig, og der er mange begrænsninger i forhold til, hvad du kan gøre med SQL Server. Navnlig kan den indbyggede kodeblok ikke returnere et resultatsæt, så den kan ikke bruges til det, du skitserer ovenfor.

Generelt, hvis du vil skrive en procedurekode og få den til at returnere et resultat, skal du indsætte den i en funktion. For eksempel:

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();

PostgreSQL-trådprotokollen tillader, så vidt jeg ved, ikke ting som en kommando, der returnerer flere resultatsæt. Så du kan ikke bare kortlægge T-SQL-batches eller lagrede procedurer til PostgreSQL-funktioner.




  1. Sådan installeres MySQL med phpMyAdmin på Ubuntu 12.04

  2. SQL Server 2008 personsøgningsmetoder?

  3. Oracle-understøttede versioner Matrix

  4. Får fejl - ORA-01858:et ikke-numerisk tegn blev fundet, hvor et numerisk var forventet