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

Chức năng Postgres Kết thúc Vòng lặp và trả về Lỗi

Sử dụng OUT tham số để trả về một hàng có nhiều cột. RETURN loại là tùy chọn trong trường hợp này, tôi trích dẫn hướng dẫn sử dụng tại đây :

CREATE OR REPLACE FUNCTION conta_relatos(
    _fator_normativo integer
   ,_fator_determinativo integer
   ,OUT rel_pri integer
   ,OUT rel_sec integer
   ,OUT rel_ref integer
   ) AS
$func$
DECLARE
   tipo_relato text;
BEGIN

rel_pri := 0;
rel_sec := 0;
rel_ref := 0;

FOR tipo_relato IN
   SELECT f."Tipo_Relato"
   FROM   "Vinculos" v
   JOIN   "Fontes"   f ON f."ID" = v."Item"
   WHERE  v."Fator_Normativo" = _fator_normativo
   AND    v."Fator_Determinativo" = _fator_determinativo
LOOP
   CASE tipo_relato
   WHEN '1 - Relato Primário' THEN 
      rel_pri := rel_pri + 1;
   WHEN '2 - Relato Secundário' THEN 
      rel_sec := rel_sec + 1;
   WHEN '3 - Relato Referencial' THEN 
      rel_ref := rel_ref + 1;
   END CASE;
END LOOP;

-- No RETURN needed, OUT parameters are returned automatically.

END
$func$ LANGUAGE plpgsql;

Gọi:

SELECT * FROM conta_relatos(1,2);

Tôi cũng đã đơn giản hóa phần lớn chức năng của bạn. Trong số những người khác:

Toàn bộ hàm có thể dễ dàng được viết lại dưới dạng một câu lệnh SQL duy nhất.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - tạo một DB mới thông qua giao diện người dùng pgAdmin

  2. Cách thích hợp để thêm văn bản chưa thoát từ một trường vào regex trong postgres?

  3. Tìm các giá trị trùng lặp trên cột mảng

  4. Tạo liên kết mối quan hệ trong PostgreSQL thông qua pgAdmin

  5. Không có ràng buộc duy nhất phù hợp với các khóa đã cho cho bảng được tham chiếu