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

sử dụng Array_append cho tôi lỗi cú pháp khi tạo hàm PostgreSQL

Từ hướng dẫn sử dụng tốt :

Vì vậy, array_append trả về một mảng và bạn cần gán giá trị trả về đó cho một thứ gì đó. Ngoài ra, tôi nghĩ bạn muốn array_to_string ở cuối hàm của bạn, không phải array_to_text . Và primes là một mảng, vì vậy bạn muốn array_append(primes, mycount) thay vì cố gắng nối vào một mục trong 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';

Tôi không biết bạn định làm gì mycount := count(primes); để làm, có lẽ bạn muốn nói mycount := array_length(primes, 1); để bạn nhận được một chuỗi các số nguyên liên tiếp dưới dạng 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. Postgres:chọn tổng các giá trị rồi tính tổng lại

  2. Truy vấn Postgres chậm một cách đáng kinh ngạc bằng cách sử dụng WHERE trên nhiều hàng liền kề

  3. Slick tạo mã chỉ cho một giản đồ duy nhất

  4. Postgres làm ơn / pgsql LỖI:column column_name không tồn tại

  5. sử dụng thử / ngoại trừ với psycopg2 hoặc với đóng?