Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

45.2. Hàm kèo chấp bóng đá hôm nay

Các chức năng trong kèo chấp bóng đá hôm nay được khai báo thông qua tiêu chuẩnTạo chức năngCú pháp:

tạo chức năngfuncname(arging-list)
  Trả vềReturn-Type10369_10428

Cơ thể của một hàm chỉ đơn giản là một tập lệnh kèo chấp bóng đá hôm nay. Khi hàm được gọi, các đối số của nó được truyền dưới dạng các phần tử của danh sáchargs; Các đối số được đặt tên cũng được truyền dưới dạng các biến thông thường cho tập lệnh kèo chấp bóng đá hôm nay. Việc sử dụng các đối số được đặt tên thường dễ đọc hơn. Kết quả được trả về từ mã kèo chấp bóng đá hôm nay theo cách thông thường, vớireturnhoặcnăng suất(trong trường hợp câu lệnh kết quả). Nếu bạn không cung cấp giá trị trả về, kèo chấp bóng đá hôm nay trả về mặc địnhKhông. kèo chấp bóng đá hôm naydịch kèo chấp bóng đá hôm nay'sKhôngvào giá trị null SQL.

Ví dụ, một kèo chấp bóng đá hôm nay để trả về lớn hơn của hai số nguyên có thể được định nghĩa là:

Tạo chức năng pymax (A Integer, B Integer)
  Trả về số nguyên
Như $$
  Nếu a b:
    trả lại a
  trả lại b
$$ ngôn ngữ plpythonu;

Mã kèo chấp bóng đá hôm nay được đưa ra như là phần thân của định nghĩa hàm được chuyển thành hàm kèo chấp bóng đá hôm nay. Ví dụ: các kết quả trên trong:

def __plpython_procedure_pymax_23456 ():
  Nếu a b:
    trả lại a
  trả lại b

Giả sử 23456 là OID được gán cho kèo chấp bóng đá hôm nay củaPostgreSQL.

Các đối số được đặt làm biến toàn cầu. Do các quy tắc phạm vi của kèo chấp bóng đá hôm nay, điều này có hậu quả tinh tế là một biến đối số không thể được chỉ định lại bên trong hàm theo giá trị của một biểu thức liên quan đến chính tên biến, trừ khi biến được ghi lại là toàn cầu trong khối. Ví dụ: những điều sau sẽ không hoạt động:

12137_12250

vì gán choxlàm choxMột biến cục bộ cho toàn bộ khối, và vì vậyxỞ phía bên phải của bài tập đề cập đến biến cục bộ chưa được chỉ địnhx, không phải tham số chức năng kèo chấp bóng đá hôm nay. Sử dụngToàn cầuTuyên bố, điều này có thể được thực hiện để làm việc:

Tạo chức năng pystrip (x văn bản)
  Trả về văn bản
Như $$
  Toàn cầu x
  x = x.strip () # ok ngay bây giờ
  trả lại x
$$ ngôn ngữ plpythonu;

Nhưng nên không dựa vào chi tiết triển khai này của kèo chấp bóng đá hôm nay. Tốt hơn là coi các tham số chức năng là chỉ đọc.