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

Làm cách nào để trả về nhiều hàng từ hàm PL / pgSQL?

Sau khi sửa các lỗi @Pavel đã chỉ ra , cũng xác định loại trả lại của bạn đúng cách, hoặc bạn phải cung cấp danh sách định nghĩa cột cho mỗi lần gọi.

Cuộc gọi này:

SELECT * FROM get_object_fields()

... giả sử rằng Postgres biết cách mở rộng * . Vì bạn đang trả lại các bản ghi ẩn danh, bạn sẽ có một ngoại lệ:

ERROR:  a column definition list is required for functions returning "record"

Một cách (trong số nhiều cách) để khắc phục điều này là sử dụng RETURNS TABLE (Postgres 8.4+):

CREATE OR REPLACE FUNCTION get_object_fields()
  RETURNS TABLE (department_id int) AS 
$func$
BEGIN
   RETURN QUERY
   SELECT department_id
   FROM   fact_department_daily 
   WHERE  report_date = '2013-06-07';
END
$func$ LANGUAGE plpgsql;

Hoạt động cho các hàm SQL giống nhau.

Có liên quan:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đọc dịch vụ REST trả về đối tượng JSON và lưu trữ tương tự vào PostgreSQL bằng Mule ESB, Mule Studio

  2. "LANGUAGE" plpgsql "VOLATILE" có nghĩa là gì?

  3. Làm cách nào để tìm kiếm một loạt các số nguyên trong PostgreSQL?

  4. Ứng dụng khách Postgres bị khóa khi tạo bảng mới

  5. Postgres chuyển đổi loại PATH thành ARRAY