PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để tạo một hàm lồng nhau trong PL / pgSQL?

Hãy thử nó:

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;

Trong postgres 9.5 SELECT outer(); kết quả đầu ra

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

CHỈNH SỬA:nếu bạn không bỏ chức năng bên trong vào cuối chức năng bên ngoài, nó sẽ vẫn hiển thị với phần còn lại của cơ sở dữ liệu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để xóa nhận xét khỏi tệp sql thô

  2. Trình kích hoạt sự kiện ROLLBACK trong postgresql

  3. Cách phổ biến để so sánh dấu thời gian trong Oracle, PostgreSQL và SQL Server

  4. Cách định cấu hình postgresql postgresql.conf nghe_addresses cho nhiều địa chỉ ip

  5. PostgreSQL:Nhóm sau đó lọc bảng, với điều kiện không tồn tại