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

Jak utworzyć zagnieżdżoną funkcję w PL/pgSQL?

Wypróbuj:

CREATE OR REPLACE FUNCTION outer() RETURNS void AS $outer$
DECLARE s text;
BEGIN
  CREATE OR REPLACE FUNCTION inner() RETURNS text AS $inner$
  BEGIN
    RETURN 'inner';
  END;
  $inner$ language plpgsql;

  SELECT inner() INTO s;
  RAISE NOTICE '%', s;

  DROP FUNCTION inner();
END;
$outer$ language plpgsql;

W postgresie 9.5 SELECT outer(); wyjścia

 psql:/vagrant/f.sql:14: NOTICE:  inner

EDYCJA:jeśli nie usuniesz funkcji wewnętrznej na końcu funkcji zewnętrznej, pozostanie ona widoczna dla reszty bazy danych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak za pomocą django sprawdzić, czy coś istnieje w bazie postgresql?

  2. Uruchamianie programu Java z wiersza poleceń systemu Linux, który wymaga dodatkowego pliku

  3. Błąd operacyjny:KRYTYCZNY:przepraszam, zbyt wielu klientów już używa psycopg2

  4. Konwertuj dzień juliański na datę w PostgreSQL

  5. django jak zdefiniować modele dla istniejących od wielu do wielu tabel w bazie postgresql