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

Włączenie LOOP do SQL

Problem polega na wywołaniu funkcji z argumentami, ale nie określaniu żadnych podczas tworzenia funkcji. Potrzebujesz więc czegoś takiego (nie testowane):

CREATE FUNCTION "UpdatePMPM"(nbr_mem_months integer, effectivdate date, some_arg varchar) RETURNS void
    LANGUAGE plpgsql
AS
$$
DECLARE
    ym varchar := to_char(effectivedate,'YYYYMM');
BEGIN
        FOR r IN  1..nbr_mem_months LOOP
            
            UPDATE elan.pmpm set mbrmonths = mbrmonths+1 where yyyyymm = ym;
            effectivedate = effectivedate + interval '1 month';
            ym=to_char(effectivedate,'YYYYMM');
        END LOOP;
    RETURN;
END
$$;

Z błędu nie wynika jasno, jaki powinien być trzeci argument, więc będzie to wyjaśnienie z Twojej strony.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails:Dodanie migracji w celu dodania tablicy (domyślnie puste)

  2. Włączenie LOOP do SQL

  3. Zapytanie SQL pasujące do jednego z wielu ciągów

  4. Czy można odbudować pg_depend?

  5. Wydajność aplikacji opartych na PostgreSQL:opóźnienia i ukryte opóźnienia