PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

използването на Array_append ми дава синтактична грешка при създаване на функция PostgreSQL

От изящно ръководство :

Така че array_append връща масив и трябва да присвоите тази върната стойност на нещо. Освен това мисля, че искате array_to_string в края на вашата функция, а не array_to_text . И primes е масив, така че искате array_append(primes, mycount) вместо да се опитвате да добавите към запис в 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';

Не знам какво възнамерявате mycount := count(primes); да направите, може би сте искали да кажете mycount := array_length(primes, 1); така че да получите поредица от последователни цели числа в 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. PostgreSQL:В ЕДИН СИНТАКСИЧЕН ред на SQL по числова стойност, изчислена от текстова колона

  2. Как да актуализирам автоматично времеви печат в PostgreSQL

  3. ruby миграцията е върната, но получава грешка при повторно стартиране на миграцията

  4. Обединяване на таблици с PostgreSQL

  5. Съхранение на часовата зона във времеви печат на тип данни с часова зона