Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển: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 tỷ lệ kèo bóng đá tối nay phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

43.1. Các tỷ lệ kèo bóng đá tối nay số

Để tạo hàm trong ngôn ngữ tỷ lệ kèo bóng đá tối nay, sử dụng tiêu chuẩnTạo chức năngCú pháp:

Tạo chức năngfuncname(đối số loại) Trả vềReturn-Typenhư $$

Cơ thể của hàm là mã Perl thông thường. Trong thực tế, mã keo tỷ lệ kèo bóng đá tối nay kết thúc nó bên trong một chương trình con Perl.

tỷ lệ kèo bóng đá tối nay cũng hỗ trợ các khối mã ẩn danh được gọi bằngdoTuyên bố:

Do $$

Một khối mã ẩn danh không nhận được đối số và bất kỳ giá trị nào mà nó có thể trả lại đều bị loại bỏ. Nếu không thì nó hoạt động giống như một tỷ lệ kèo bóng đá tối nay.

Lưu ý:Việc sử dụng các chương trình con lồng nhau được đặt tên là nguy hiểm ở Perl, đặc biệt nếu chúng đề cập đến các biến từ vựng trong phạm vi kèm theo. Bởi vì một chức năng tỷ lệ kèo bóng đá tối nay được bọc trong một chương trình con, bất kỳ chương trình con có tên bạn đặt bên trong một sẽ được lồng nhau.biến "%s" sẽ không được chia sẻbiến "%s" không khả dụngTrongPerldiagTrang người đàn ông hoặc tìm kiếm Internet cho"tỷ lệ kèo bóng đá tối nay lồng nhau có tên chương trình con".

Cú pháp củaTạo chức năngLệnh yêu cầu cơ thể chức năng được viết dưới dạng hằng số chuỗi. Thường thuận tiện nhất khi sử dụng báo giá đô la (xemPhần 4.1.2.4) cho hằng số chuỗi. Nếu bạn chọn sử dụng Escape String SyntaxE '', bạn phải tăng gấp đôi bất kỳ dấu nào đơn lẻ (') và Backslashes (\) Được sử dụng trong phần thân của tỷ lệ kèo bóng đá tối nay (xemPhần 4.1.2.1).

Đối số và kết quả được xử lý như trong bất kỳ chương trình con tỷ lệ kèo bóng đá tối nay nào khác: Đối số được truyền trong@_và giá trị kết quả được trả về vớireturnhoặc là biểu thức cuối cùng được đánh giá trong tỷ lệ kèo bóng đá tối nay.

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

Tạo tỷ lệ kèo bóng đá tối nay perl_max (số nguyên, số nguyên) Trả về số nguyên dưới dạng $$

Lưu ý:Đối số sẽ được chuyển đổi từ mã hóa cơ sở dữ liệu thành UTF-8 để sử dụng bên trong tỷ lệ kèo bóng đá tối nay, sau đó được chuyển đổi từ UTF-8 trở lại mã hóa cơ sở dữ liệu khi trả về.

Nếu giá trị NULL SQL được chuyển đến tỷ lệ kèo bóng đá tối nay, giá trị đối số sẽ xuất hiện dưới dạng"không xác định"Trong tỷ lệ kèo bóng đá tối nay. Định nghĩa chức năng trên sẽ không hoạt động rất độc đáo với các đầu vào null (trên thực tế, nó sẽ hoạt động như thể chúng là số 0).nghiêm ngặtĐịnh nghĩa chức năng để thực hiệnPostgreSQLLàm điều gì đó hợp lý hơn: Nếu giá trị null được thông qua, tỷ lệ kèo bóng đá tối nay sẽ không được gọi cả, nhưng sẽ tự động trả về kết quả null. Ngoài ra, chúng tôi có thể kiểm tra các đầu vào không xác định trong cơ thể chức năng.perl_maxVới một đối số NULL và một đối số không liên quan để trả về đối số nonnull, thay vì giá trị null:

Tạo tỷ lệ kèo bóng đá tối nay perl_max (số nguyên, số nguyên) Trả về số nguyên dưới dạng $$

Như được hiển thị ở trên, để trả về giá trị null SQL từ hàm tỷ lệ kèo bóng đá tối nay, trả về giá trị không xác định. Điều này có thể được thực hiện cho dù chức năng có nghiêm ngặt hay không.

Bất cứ điều gì trong một đối số chức năng không phải là một tham chiếu là một chuỗi, nằm trong tiêu chuẩnPostgreSQLBiểu diễn văn bản bên ngoài cho kiểu dữ liệu liên quan. Trong trường hợp các loại văn bản hoặc số thông thường, tỷ lệ kèo bóng đá tối nay sẽ chỉ làm điều đúng đắn và người lập trình thường sẽ không phải lo lắng về nó.​​decode_byteatỷ lệ kèo bóng đá tối nay có thể được sử dụng để chuyển đổi đối số loạibyteathành nhị phân không được phân loại.

Tương tự, tỷ lệ kèo bóng đá tối nay giá trị được truyền lại choPostgreSQLphải ở định dạng biểu diễn văn bản bên ngoài. Ví dụ:encode_byteatỷ lệ kèo bóng đá tối nay có thể được sử dụng để thoát dữ liệu nhị phân cho giá trị trả về loạibytea.

tỷ lệ kèo bóng đá tối nay có thể trả lạiPostgreSQLMảng dưới dạng tham chiếu đến các mảng tỷ lệ kèo bóng đá tối nay. Đây là một ví dụ:

Tạo hoặc thay thế tỷ lệ kèo bóng đá tối nay returns_array ()

tỷ lệ kèo bóng đá tối nay PassesPostgreSQLmảng như một người may mắnPostgresql :: Inserver :: mảngĐối tượng. Đối tượng này có thể được coi là tham chiếu mảng hoặc một chuỗi, cho phép khả năng tương thích ngược với mã tỷ lệ kèo bóng đá tối nay được viết choPostgreSQLPhiên bản dưới 9.1 để chạy. Ví dụ:

Tạo hoặc thay thế chức năng Concat_array_elements (Text []) Trả về văn bản dưới dạng $$

Lưu ý:Mảng đa chiều được biểu diễn dưới dạng tham chiếu đến các mảng tham chiếu chiều thấp hơn theo cách phổ biến cho mọi lập trình viên tỷ lệ kèo bóng đá tối nay.

Các đối số loại tổng hợp được chuyển đến tỷ lệ kèo bóng đá tối nay như các tham chiếu đến băm. Các khóa của băm là tên thuộc tính của loại tổng hợp.

Tạo nhân viên bảng (

Hàm tỷ lệ kèo bóng đá tối nay có thể trả về kết quả loại tổng hợp bằng cách sử dụng cùng một cách tiếp cận: trả về một tham chiếu về một hàm băm có các thuộc tính cần thiết. Ví dụ:

Tạo loại testRowPerl As (số nguyên F1, văn bản F2, văn bản F3);

Bất kỳ cột nào trong kiểu dữ liệu kết quả được khai báo không có trong băm sẽ được trả về làm giá trị null.

Các hàm tỷ lệ kèo bóng đá tối nay cũng có thể trả về các bộ của vô hướng hoặc các loại tổng hợp. Thông thường, bạn sẽ muốn trả lại một hàng một lần, cả hai để tăng tốc thời gian khởi động và để không xếp hàng toàn bộ kết quả được đặt trong bộ nhớ.return_nextnhư được minh họa dưới đây. Lưu ý rằng sau lần cuốireturn_next, bạn phải đặtreturnhoặc (tốt hơn)Return Undef.

Tạo hoặc thay thế chức năng perl_set_int (int)

Đối với tỷ lệ kèo bóng đá tối nay bộ kết quả nhỏ, bạn có thể trả về một tham chiếu đến một mảng có chứa vô hướng, tham chiếu đến mảng hoặc tham chiếu đến băm cho tỷ lệ kèo bóng đá tối nay loại đơn giản, loại mảng và loại tổng hợp, tương ứng. Dưới đây là một số ví dụ đơn giản về việc trả về toàn bộ kết quả được đặt làm tham chiếu mảng:

Tạo hoặc thay thế tỷ lệ kèo bóng đá tối nay perl_set_int (int) Trả về số nguyên setof AS $$

Nếu bạn muốn sử dụngnghiêm ngặtPragma với mã của bạn, bạn có một tỷ lệ kèo bóng đá tối nayi tùy chọn. Để sử dụng toàn cầu tạm thời, bạn có thểset plperl.use_strictĐể đúng. Điều này sẽ ảnh hưởng đến tỷ lệ kèo bóng đá tối nay phần tổng hợp tiếp theo củatỷ lệ kèo bóng đá tối naytỷ lệ kèo bóng đá tối nay chức năng, nhưng không phải là chức năng đã được biên dịch trong phiên hiện tại. Để sử dụng toàn cầu vĩnh viễn, bạn có thể đặtplperl.use_strictĐúng trongPostgreSql.confTệp.

Để sử dụng vĩnh viễn trong tỷ lệ kèo bóng đá tối nay chức năng cụ thể mà bạn có thể đặt đơn giản:

Sử dụng nghiêm ngặt;

Ở đầu cơ thể chức năng.

Thetính năngPragma cũng có sẵn choSử dụngNếu tỷ lệ kèo bóng đá tối nay của bạn là phiên bản 5.10.0 trở lên.