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

użycie Array_append daje mi błąd składni podczas tworzenia funkcji PostgreSQL

Z dokładnej instrukcji :

Więc array_append zwraca tablicę i musisz przypisać tę wartość zwracaną do czegoś. Myślę też, że chcesz array_to_string na końcu funkcji, a nie array_to_text . I primes jest tablicą, więc chcesz array_append(primes, mycount) zamiast próbować dołączać do wpisu w primes .

CREATE OR REPLACE FUNCTION primes (IN integer) RETURNS TEXT AS $$
DECLARE
    counter INTEGER = $1; 
    primes int []; 
    mycount int; 
BEGIN
    WHILE counter != 0 LOOP 
        mycount := count(primes); 
        primes  := array_append(primes, mycount);
        counter := counter - 1; 
    END LOOP;
    RETURN array_to_string(primes, ',');   
END;   
$$ LANGUAGE 'plpgsql';

Nie wiem, co zamierzasz mycount := count(primes); do zrobienia, być może chciałeś powiedzieć mycount := array_length(primes, 1); aby otrzymać ciąg kolejnych liczb całkowitych w primes .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć użytkownika w PostgreSQL

  2. Zapisz dane wyjściowe PL/pgSQL z PostgreSQL do pliku CSV

  3. W ramach funkcji wyzwalacza, jak uzyskać, które pola są aktualizowane?

  4. postgresql:podział czasu na imprezie

  5. Sprawdź, czy pole istnieje w kolumnie typu json PostgreSQL