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

PostgreSQL 11 - Thủ tục

Bạn có thể có INOUT tham số trong một thủ tục.

Bạn gọi một thủ tục với CALL tuyên bố; nếu có bất kỳ INOUT nào tham số, câu lệnh sẽ trả về một hàng kết quả giống như SELECT .

Đây là một ví dụ sử dụng một thủ tục trả về một refcursor :

CREATE PROCEDURE testproc(INOUT r refcursor) LANGUAGE plpgsql AS
$$BEGIN
   r := 'cur';
   OPEN r FOR VALUES (1), (42), (12321);
END;$$;

BEGIN;

CALL testproc(NULL);

  r  
-----
 cur
(1 row)

FETCH ALL FROM cur;

 column1 
---------
       1
      42
   12321
(3 rows)

COMMIT;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tham gia truy vấn chỉ với các cột có tất cả các giá trị trong mệnh đề `in`

  2. Không thể kết nối với Postgres DB do loại xác thực 10 không được hỗ trợ

  3. Cột PostgreSQL 'foo' không tồn tại

  4. cài đặt postgres, khởi tạo cụm cơ sở dữ liệu không thành công (Postgresql Phiên bản 9.4.4)

  5. Kế hoạch truy vấn Postgres tại sao ước tính Hàng quá sai