Các chức năng trong soi kèo bóng đá truoctran được khai báo thông qua tiêu chuẩnTạo chức năngCú pháp:
Tạo chức năngfuncname
(List arging-list
)Return-type
như $$
Cơ thể của một hàm chỉ đơn giản là một tập lệnh soi kèo bóng đá truoctran. 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 soi kèo bóng đá truoctran.return
hoặ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ề, soi kèo bóng đá truoctran trả về mặc địnhKhông
. soi kèo bóng đá truoctrandịch soi kèo bóng đá truoctran'sKhông
vào giá trị null SQL. Trong một thủ tục, kết quả từ mã soi kèo bóng đá truoctran phải làKhông
(thường đạt được bằng cách kết thúc thủ tục mà không córeturn
câu lệnh hoặc bằng cách sử dụngreturn
Câu không đối số); Nếu không, một lỗi sẽ được nêu ra.
Ví dụ: một soi kèo bóng đá truoctran để 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)
Mã soi kèo bóng đá truoctran được đưa ra như là phần thân của định nghĩa hàm được chuyển thành hàm soi kèo bóng đá truoctran. Ví dụ: các kết quả trên trong:
def __plpython_procedure_pymax_23456 ():
Giả sử rằng 23456 là OID được gán cho soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran, đ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.
Tạo chức năng pystrip (x văn bản)
vì gán chox
làm chox
Mộ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 soi kèo bóng đá truoctran. Sử dụngtoàn cầu
Tuyê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)
Nhưng nên không dựa vào chi tiết triển khai này của soi kèo bóng đá truoctran. Tốt hơn là coi các tham số chức năng là chỉ đọc.