PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

menggunakan Array_append memberi saya kesalahan sintaks saat membuat fungsi PostgreSQL

Dari manual bagus :

Jadi array_append mengembalikan array dan Anda perlu menetapkan nilai pengembalian itu ke sesuatu. Juga, saya pikir Anda ingin array_to_string di akhir fungsi Anda, bukan array_to_text . Dan primes adalah array sehingga Anda ingin array_append(primes, mycount) daripada mencoba menambahkan entri di 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';

Saya tidak tahu apa yang Anda maksudkan mycount := count(primes); yang harus dilakukan, mungkin Anda bermaksud mengatakan mycount := array_length(primes, 1); sehingga Anda akan mendapatkan urutan bilangan bulat berturut-turut dalam 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. Meratakan relasi dengan array untuk memancarkan satu baris per entri array

  2. Tambahkan detik ke stempel waktu

  3. String -> java.util.Date -> java.sql.Date (dengan cap waktu)

  4. rake db:structure:dump gagal di bawah PostgreSQL / Rails 3.2

  5. PostgreSQL:Buat indeks pada stempel waktu::DATE