PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak odwoływać się do nazwanych parametrów w funkcjach sql Postgresa?

ZMIANA:Jak wskazano w komentarzach, ta odpowiedź była dokładna, gdy została napisana na początku 2012 roku, ale nazwane parametry są obsługiwane od wersji 9.2, wydanej pod koniec 2012 roku.

Nazwy parametrów są jedynie dekoracją, gdy funkcja jest w język SQL . Możesz użyć parametrów według nazwy w procedurach składowanych zdefiniowanych jako language plpgsql .

W związku z tym musisz odwołać się do argumentów funkcji za pomocą $X, gdzie X jest pozycją porządkową listy argumentów funkcji (zaczynając od 1).

CREATE OR REPLACE FUNCTION fn_name (
  n VARCHAR(32) = NULL,
  OUT name varchar(32),
  OUT description varchar(64) )
RETURNS setof record
AS 
$$
    SELECT u.name
        , u.description
    FROM table_a u
    WHERE u.name = COALESCE($1, u.name);
$$
LANGUAGE sql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy możesz utworzyć indeks w definicji CREATE TABLE?

  2. Czy przygotowana instrukcja pg_prepare() (nie PDO) zapobiega SQL-Injection?

  3. 3 sposoby na wyświetlenie listy wszystkich funkcji w PostgreSQL

  4. grupuj według przedziału cenowego

  5. Spring Data JPA + Hibernate Skip Zablokowane wiersze (PostgreSQL)