Postgresql 9.2.24 Tài liệu | ||||
---|---|---|---|---|
Prev | UP | Chương 41. | Tiếp theo |
Để tạo hàm trong ngôn ngữ soi kèo bóng đá truoctran, sử dụng tiêu chuẩnPostgreSQL: Tài liệu: 9.2: kèo bóngCú pháp:
Tạo chức soi kèo bóng đá truoctranfuncname(đối số loại) Trả vềReturn-Typenhư $$
Phần thân của soi kèo bóng đá truoctran là mã Perl thông thường. Trong thực tế,
soi kèo bóng đá truoctran 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 cứ điều gì
Lưu ý:Việc sử dụng chương trình con được đặt tên làbiến "%s" sẽ không được chia sẻvàbiến "%s" không khả dụnginPerldiagTrang người đàn ông hoặc tìm kiếm trên Internet cho"Perl lồng nhau có tên chương trình con".
Cú pháp củaTạo chức soi kèo bóng đá truoctranLệnh yêu cầu cơ thể chức soi kèo bóng đá truoctran được viết dưới dạng chuỗiPhần) cho hằng số chuỗi. Nếu bạn chọn sử dụng EscapeE '', bạn phải nhân đôi bất kỳ') và dấu gạch chéo ngược\) Được sử dụng trong phần thân của chức soi kèo bóng đá truoctranPhần).
Đối số và kết quả được xử lý như trong bất kỳ Perl nào khác@_,,returnhoặc là biểu thức cuối cùng được đánh giá trong
Ví dụ: một soi kèo bóng đá truoctran trả về lớn hơn của hai số nguyên
Tạo soi kèo bóng đá truoctran 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ừ
Nếu giá trị NULL SQL được chuyển đến soi kèo bóng đá truoctran, đối số"không xác định"innghiêm ngặtđếnPostgreSQLlàm điều gì đó hợp lý hơn: nếuperl_max
Với một NULL và một đối số không liên quan
Tạo soi kèo bóng đá truoctran 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ừ soi kèo bóng đá truoctran
Bất cứ điều gì trong một đối số chức soi kèo bóng đá truoctran không phải là tham chiếu là mộtPostgreSQLBiểu diễn văn bản bên ngoài chodecode_bytea
chức soi kèo bóng đá truoctran có thể được sử dụng để chuyển đổi mộtbyteavào không được kiểm soát
Tương tự, các giá trị được chuyển lại choPostgreSQLphải có trong văn bản bên ngoàiencode_bytea
Có thể sử dụng chức soi kèo bóng đá truoctran để thoát khỏibytea.
Perl có thể trả lạiPostgreSQLMảng dưới dạng tham chiếu đến các mảng Perl. Đây là một ví dụ:
Tạo hoặc thay thế soi kèo bóng đá truoctran returns_array ()
Perl PassesPostgreSQLMảngPostgreSQLPhiên bản dưới 9.1 để chạy. Vì
Tạo hoặc thay thế chức soi kèo bóng đá truoctran 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
Đối số loại tổng hợp được truyền cho soi kèo bóng đá truoctran
Tạo nhân viên bảng (
Hàm soi kèo bóng đá truoctran có thể trả về kết quả loại tổng hợp bằng cách sử dụng
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ác hàm soi kèo bóng đá truoctran cũng có thể trả về các bộ của vô hướng hoặcreturn_next
như được minh họa dưới đây.return_next
, bạn phải đặtreturnhoặc (tốt hơn)trở lại.
Tạo hoặc thay thế chức soi kèo bóng đá truoctran perl_set_int (int)
Đối với các bộ kết quả nhỏ, bạn có thể trả về một tham chiếu cho một mảng
Tạo hoặc thay thế soi kèo bóng đá truoctran perl_set_int (int) Trả về số nguyên setof AS $$
Nếu bạn muốn sử dụngnghiêm ngặtPragmaset plperl.use_strictĐể đúng. Điều này sẽ ảnh hưởngsoi kèo bóng đá truoctranchức soi kèo bóng đá truoctran, nhưng không phải là chức soi kèo bóng đá truoctran rồiplperl.use_strictĐúng trongPostgreSql.confTệp.
Để sử dụng vĩnh viễn trong các chức soi kèo bóng đá truoctran cụ thể, bạn có thể chỉ đơn giản là
sử dụng nghiêm ngặt;
Ở đầu cơ thể chức soi kèo bóng đá truoctran.
Thetính soi kèo bóng đá truoctranPragma cũng có sẵnsử dụng
Nếu perl của bạn là phiên bản