PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да декларирам локални променливи в postgresql?

Postgresql исторически не поддържа процедурен код на командно ниво - само в рамките на функции. Въпреки това, в Postgresql 9 е добавена поддръжка за изпълнение на вграден кодов блок, който ефективно поддържа нещо подобно, въпреки че синтаксисът може би е малко странен и има много ограничения в сравнение с това, което можете да правите със SQL Server. По-специално, вграденият кодов блок не може да върне набор от резултати, така че не може да се използва за това, което сте очертали по-горе.

Като цяло, ако искате да напишете някакъв процедурен код и той да върне резултат, трябва да го поставите във функция. Например:

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, доколкото знам, не позволява неща като команда, връщаща множество набори от резултати. Така че не можете просто да съпоставите T-SQL партиди или съхранени процедури към функциите на PostgreSQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL UNIX домейн сокети срещу TCP сокети

  2. Индекс на долните букви на Flask-SQLAlchemy - функция за пропускане, не се поддържа от отражението на SQLAlchemy

  3. Разбиране на ограниченията за проверка в PostgreSQL

  4. Извличане на максимума от вашите PostgreSQL индекси

  5. ActiveRecord::AdapterNotSpecified конфигурацията на базата данни не посочва адаптер