2014-09-30 12 views
7

Tôi muốn thực hiện một số pgScript trực tiếp từ giao diện người dùng trình biên tập pgAdmin.cách thực thi tập lệnh pgsql trong pgAdmin?

FOR i IN 1..10 LOOP 
    PRINT i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
END LOOP; 

Nhưng tôi luôn luôn có

[ERROR ] 1.0: syntax error, unexpected character 

Tôi cũng đã cố gắng để bọc các mã với làm $$ ... $$, nhưng không giải quyết được vấn đề.

Trả lời

13

ngoài Clodoaldo Neto's Answer .Bạn có thể thử điều này cũng

DO 
$$ 
BEGIN 
FOR i IN 1..10 LOOP 
     RAISE NOTICE '%', i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
END LOOP; 
END 
$$ 
+2

Đẹp! Điều đó nên được đánh dấu là câu trả lời được chấp nhận, chắc chắn. – Christian

1

Không có lệnh PRINT. Sử dụng raise notice để thay thế.

create function f() 
returns void as $$ 
begin 
    FOR i IN 1..10 LOOP 
     raise notice '%', i; -- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
    END LOOP; 
end; 
$$ language plpgsql; 

http://www.postgresql.org/docs/current/static/plpgsql.html

+0

err..I nghĩ với khối ẩn danh, nó không phải là cần thiết để tạo một hàm cho mỗi kịch bản ngắn .. .Không? – davidshen84

+0

@ davidshen84 Có một khối sẽ hoạt động. –

+1

@ davidshen84 ... nhưng bạn cần một khối 'DO', bạn không thể chỉ viết PL/PgSQL trực tiếp. –

Các vấn đề liên quan