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 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2

43.3. Khai tỷ lệ kèo bóng đá 88#

Tất cả các biến được sử dụng trong một khối phải được khai tỷ lệ kèo bóng đá 88 trong phần khai tỷ lệ kèo bóng đá 88 của khối. (Các ngoại lệ duy nhất là biến vòng lặp củacho11760_11895choVòng lặp lặp qua kết quả của con trỏ được tự động khai tỷ lệ kèo bóng đá 88 là biến bản ghi.)

PL/PGSQLBiến có thể có bất kỳ loại dữ liệu SQL nào, chẳng hạn nhưSố nguyên, VarcharChar.

Dưới đây là một số ví dụ về khai tỷ lệ kèo bóng đá 88 biến:

Số nguyên user_id;
số lượng số (5);
url varchar;
Tên tablename myrow%RowType;
myfield tablename.columnname%Loại;
Bản ghi AROW;

Cú pháp chung của khai tỷ lệ kèo bóng đá 88 biến là:

tên[hằng số]loại[đối chiếucollation_name 12757_12762không null] [Mặc định | : = | =Biểu thức ];

Themặc địnhmệnh đề, nếu được đưa ra, chỉ định giá trị ban đầu được gán cho biến khi khối được nhập. Nếumặc địnhmệnh đề không được đưa ra thì biến được khởi tạo thànhSQLgiá trị null. Thehằng sốTùy chọn ngăn biến được gán cho sau khi khởi tạo, do đó giá trị của nó sẽ không đổi trong suốt thời lượng của khối. Theđối chiếuTùy chọn Chỉ định đối chiếu để sử dụng cho biến (xemPhần 43.3.6). Nếu nhưkhông nullđược chỉ định, gán giá trị null dẫn đến lỗi thời gian chạy. Tất cả các biến được khai tỷ lệ kèo bóng đá 88 làkhông nullphải có giá trị mặc định không phải được chỉ định. Bình đẳng (=) có thể được sử dụng thay vì tuân thủ PL/SQL: =.

14004_14168bây giờ ()đến tỷ lệ kèo bóng đá 88 biến của loạiDấu thời gian14258_14375

Ví dụ:

Số lượng số lượng mặc định 32;
url varchar: = 'http://mysite.com';
Giao dịch_time hằng số thời gian hằng số với múi giờ: = now ();

Sau khi được khai tỷ lệ kèo bóng đá 88, giá trị của một biến có thể được sử dụng trong các biểu thức khởi tạo sau này trong cùng một khối, ví dụ:

Khai tỷ lệ kèo bóng đá 88
  x số nguyên: = 1;
  y số nguyên: = x + 1;

43.3.1. Khai tỷ lệ kèo bóng đá 88 tham số chức năng#

tham số được truyền cho tỷ lệ kèo bóng đá 88 chức năng được đặt tên với tỷ lệ kèo bóng đá 88 định danh$ 1, $ 2, v.v. Tùy chọn, các bí danh có thể được khai tỷ lệ kèo bóng đá 88 cho$nTên tham số để tăng khả năng đọc. Bí danh hoặc định danh số sau đó có thể được sử dụng để tham khảo giá trị tham số.

Có hai cách để tạo bí danh. Cách ưa thích là đặt tên cho tham số trongtạo chức năngLệnh, ví dụ:

15664_15787

15799_15878

tênbí danh cho $n;

Ví dụ tương tự trong kiểu này trông giống như:

Tạo chức năng sales_tax (real) Trả về thực tế là $$
TUYÊN BỐ
    Bí danh phụ với $ 1;
BẮT ĐẦU
    Trả lại phụ * 0,06;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Lưu ý

Hai ví dụ này không hoàn toàn tương đương. Trong trường hợp đầu tiên,Subtotalcó thể được tham chiếu làsales_tax.subtotal, nhưng trong trường hợp thứ hai thì không thể. (Chúng tôi đã gắn tỷ lệ kèo bóng đá 88 nhãn vào khối bên trong,Subtotalcó thể đủ điều kiện với nhãn đó, thay vào đó.)

tỷ lệ kèo bóng đá 88 số ví dụ khác:

Tạo chức năng (Varchar, Integer) Trả về số nguyên dưới dạng $$
TUYÊN BỐ
    Bí danh V_String với giá $ 1;
    Chỉ số bí danh với giá $ 2;
BẮT ĐẦU
    - tỷ lệ kèo bóng đá 88 số tính toán sử dụng V_String và Index ở đây
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

Tạo chức năng Concat_selected_fields (in_t tỷ lệ kèo bóng đá 88 số tên) Trả về văn bản dưới dạng $$
BẮT ĐẦU
    Trả lại in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Khi APL/PGSQLHàm được khai tỷ lệ kèo bóng đá 88 với các tham số đầu ra, các tham số đầu ra được đưa ra$nTên và bí danh tùy chọn theo cách tương tự như tỷ lệ kèo bóng đá 88 tham số đầu vào thông thường. Một tham số đầu ra thực sự là một biến bắt đầu null; Nó nên được gán cho trong quá trình thực hiện chức năng. Giá trị cuối cùng của tham số là những gì được trả về. Chẳng hạn, ví dụ về thuế bán hàng cũng có thể được thực hiện theo cách này:

Tạo chức năng Sales_Tax (Subtotal Real, Out Tax Real) là $$
BẮT ĐẦU
    Thuế: = Subtotal * 0,06;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Lưu ý rằng chúng tôi đã bỏ quaTrả về Real- Chúng tôi có thể đã bao gồm nó, nhưng nó sẽ là dự phòng.

để gọi chức năng vớiouttham số, bỏ qua (tỷ lệ kèo bóng đá 88) tham số đầu ra trong cuộc gọi chức năng:

Chọn Sales_Tax (100.00);

Tham số đầu ra hữu ích nhất khi trả về nhiều giá trị. tỷ lệ kèo bóng đá 88 ví dụ tầm thường là:

tạo chức năng sum_n_product (x int, y int, out sum int, out prod int) AS $$
BẮT ĐẦU
    tổng: = x + y;
    prod: = x * y;
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

Chọn * từ sum_n_product (2, 4);
 tổng | prod
-----+------
   6 |    8

Như đã thảo luận trongPhần 38.5.4, Điều này tạo ra tỷ lệ kèo bóng đá 88 loại bản ghi ẩn danh cho kết quả của chức năng. Nếu areturnmệnh đề được đưa ra, nó phải nóiTrả về bản ghi.

Điều này cũng hoạt động với tỷ lệ kèo bóng đá 88 thủ tục, ví dụ:

Tạo quy trình sum_n_product (x int, y int, out sum int, out prod int) AS $$
BẮT ĐẦU
    tổng: = x + y;
    prod: = x * y;
KẾT THÚC;
$$ ngôn ngữ plpgsql;

Trong một cuộc gọi đến một thủ tục, tất cả tỷ lệ kèo bóng đá 88 tham số phải được chỉ định. Đối với tỷ lệ kèo bóng đá 88 tham số đầu ra,null19253_19315

gọi sum_n_product (2, 4, null, null);
 tổng | prod
-----+------
   6 |    8

Tuy nhiên, khi gọi tỷ lệ kèo bóng đá 88 thủ tục từPL/PGSQL, thay vào đó bạn nên viết tỷ lệ kèo bóng đá 88 biến cho bất kỳ tham số đầu ra nào; Biến sẽ nhận được kết quả của cuộc gọi. Nhìn thấyPhần 43.6.3Để biết chi tiết.

Một cách khác để khai tỷ lệ kèo bóng đá 88PL/PGSQLHàm là vớiBảng trả về, ví dụ:

19996_20242

Điều này hoàn toàn tương đương với việc khai tỷ lệ kèo bóng đá 88 một hoặc nhiềuOUTtham số và chỉ địnhreturn setofanypepe.

Khi loại trả về của APL/PGSQLHàm được khai tỷ lệ kèo bóng đá 88 là loại đa hình (xemPhần 38.2.5), tỷ lệ kèo bóng đá 88 tham số đặc biệt$ 0được tạo. Kiểu dữ liệu của nó là loại trả về thực tế của hàm, như được suy ra từ tỷ lệ kèo bóng đá 88 loại đầu vào thực tế. Điều này cho phép chức năng truy cập loại trả về thực tế của nó như trongPhần 43.3.3. $ 0được khởi tạo thành NULL và có thể được sửa đổi bởi hàm, do đó nó có thể được sử dụng để giữ giá trị trả về nếu muốn, mặc dù điều đó không cần thiết.$ 0cũng có thể được đưa ra tỷ lệ kèo bóng đá 88 bí danh. Ví dụ: chức năng này hoạt động trên bất kỳ loại dữ liệu nào có+21416_21428

21463_21681

Có thể thu được hiệu ứng tương tự bằng cách khai tỷ lệ kèo bóng đá 88 một hoặc nhiều tham số đầu ra là các loại đa hình. Trong trường hợp này là đặc biệt$ 0tham số không được sử dụng; tỷ lệ kèo bóng đá 88 tham số đầu ra tự phục vụ cùng một mục đích. Ví dụ:

21976_22173

Trong thực tế, có thể hữu ích hơn khi khai tỷ lệ kèo bóng đá 88 hàm đa hình bằng cách sử dụngAnyCompiTienthọ tỷ lệ kèo bóng đá 88 loại, để tự động quảng bá tỷ lệ kèo bóng đá 88 đối số đầu vào cho một loại chung sẽ xảy ra. Ví dụ:

22451_22626

Với ví dụ này, tỷ lệ kèo bóng đá 88 cuộc gọi như

Chọn add_three_values ​​(1, 2, 4.7);

sẽ hoạt động, tự động quảng bá tỷ lệ kèo bóng đá 88 đầu vào số nguyên thành số. Chức năng sử dụngAnyEuitysẽ yêu cầu bạn chuyển ba đầu vào cho cùng loại theo cách thủ công.

43.3.2.bí danh #

newNamebí danh choOldName;

Thebí danhCú pháp tổng quát hơn so với đề xuất trong phần trước: Bạn có thể khai tỷ lệ kèo bóng đá 88 bí danh cho bất kỳ biến nào, không chỉ các tham số chức năng. Việc sử dụng thực tế chính cho điều này là gán một tên khác cho các biến có tên được xác định trước, chẳng hạn nhưmớihoặcTrong hàm kích hoạt.

Ví dụ:

Khai tỷ lệ kèo bóng đá 88
  bí danh trước cho cũ;
  Cập nhật bí danh cho Mới;

kể từbí danhTạo hai cách khác nhau để đặt tên cho cùng tỷ lệ kèo bóng đá 88 đối tượng, việc sử dụng không giới hạn có thể gây nhầm lẫn. Tốt nhất là chỉ sử dụng nó cho mục đích ghi đè tên được xác định trước.

43.3.3. Sao chép tỷ lệ kèo bóng đá 88 loại#

Biến%loại

%loạiCung cấp loại dữ liệu của một biến hoặc cột bảng. Bạn có thể sử dụng điều này để khai tỷ lệ kèo bóng đá 88 các biến sẽ giữ các giá trị cơ sở dữ liệu. Ví dụ: giả sử bạn có một cột có tênuser_idTrong của bạnNgười dùngBảng. Để khai tỷ lệ kèo bóng đá 88 một biến có cùng loại dữ liệu vớiusers.user_idbạn viết:

user_id user.user_id%type;

bằng cách sử dụng%loạiBạn không cần biết loại dữ liệu của cấu trúc bạn đang tham khảo và quan trọng nhất là loại dữ liệu của mục được tham chiếu thay đổi trong tương lai (ví dụ: bạn thay đổi loạiuser_idtừSố nguyênđếnReal), bạn có thể không cần thay đổi định nghĩa chức năng của mình.

%loạiđặc biệt có giá trị trong tỷ lệ kèo bóng đá 88 hàm đa hình, vì tỷ lệ kèo bóng đá 88 loại dữ liệu cần thiết cho tỷ lệ kèo bóng đá 88 biến nội bộ có thể thay đổi từ cuộc gọi này sang cuộc gọi tiếp theo. tỷ lệ kèo bóng đá 88 biến thích hợp có thể được tạo bằng cách áp dụng%loạiĐối với tỷ lệ kèo bóng đá 88 đối số hoặc trình giữ chỗ của chức năng.

43.3.4. Loại hàng#

tên Table_Name%RowType;tên composite_type_name;

tỷ lệ kèo bóng đá 88 biến của loại tổng hợp được gọi làhàngBiến (hoặcloại hàngBiến). tỷ lệ kèo bóng đá 88 biến như vậy có thể giữ toàn bộ hàng củaChọnhoặcchoKết quả truy vấn, miễn là bộ cột truy vấn đó phù hợp với loại được khai tỷ lệ kèo bóng đá 88 của biến. Các trường riêng lẻ của giá trị hàng được truy cập bằng cách sử dụng ký hiệu dấu chấm thông thường, ví dụRowvar.field.

Một biến hàng có thể được khai tỷ lệ kèo bóng đá 88 có cùng loại với các hàng của bảng hoặc chế độ xem hiện có, bằng cách sử dụngTable_Name%RowTypeKý hiệu; Hoặc nó có thể được khai tỷ lệ kèo bóng đá 88 bằng cách đặt tên của một loại tổng hợp. (Vì mỗi bảng có một loại tổng hợp liên quan của cùng một tên, nó thực sự không quan trọng trongPostgreSQLCho dù bạn viết%RowTypehay không. Nhưng biểu mẫu với%RowType27282_27303

tham số cho một hàm có thể là tỷ lệ kèo bóng đá 88 loại tổng hợp (hoàn thành tỷ lệ kèo bóng đá 88 hàng bảng). Trong trường hợp đó, định danh tương ứng$nsẽ là một biến hàng và tỷ lệ kèo bóng đá 88 trường có thể được chọn từ nó, ví dụ$ 1.USER_ID.

Đây là một ví dụ về việc sử dụng tỷ lệ kèo bóng đá 88 loại tổng hợp.Bảng1Bảng2tỷ lệ kèo bóng đá 88 bảng hiện có có ít nhất tỷ lệ kèo bóng đá 88 trường được đề cập:

27846_28138

43.3.5. tỷ lệ kèo bóng đá 88 loại bản ghi#

tênRecord;

Biến bản ghi tương tự như tỷ lệ kèo bóng đá 88 biến loại hàng, nhưng chúng không có cấu trúc được xác định trước. Họ đảm nhận cấu trúc hàng thực tế của hàng mà họ được gán trong mộtChọnhoặcchoLệnh. Cấu trúc của biến bản ghi có thể thay đổi mỗi khi nó được gán cho. Hậu quả của điều này là cho đến khi tỷ lệ kèo bóng đá 88 biến bản ghi được gán đầu tiên, nó không có cấu trúc phụ và bất kỳ nỗ lực nào để truy cập tỷ lệ kèo bóng đá 88 trường trong đó sẽ rút ra lỗi thời gian chạy.

Lưu ý rằngRecordkhông phải là kiểu dữ liệu thực sự, chỉ có tỷ lệ kèo bóng đá 88 trình giữ chỗ. Người ta cũng nên nhận ra rằng khi APL/PGSQLHàm được tuyên bố để trả về loạiRecord, Đây không hoàn toàn giống với tỷ lệ kèo bóng đá 88 biến bản ghi, mặc dù tỷ lệ kèo bóng đá 88 hàm như vậy có thể sử dụng tỷ lệ kèo bóng đá 88 biến bản ghi để giữ kết quả của nó. Trong cả hai trường hợp, cấu trúc hàng thực tế không rõ khi nào chức năng được viết, nhưng đối với tỷ lệ kèo bóng đá 88 chức năng trả vềRecordCấu trúc thực tế được xác định khi truy vấn gọi được phân tích cú pháp, trong khi đó tỷ lệ kèo bóng đá 88 biến bản ghi có thể thay đổi cấu trúc hàng của nó trên đường.

43.3.6. Đối chiếuPL/PGSQLBiến#

Khi APL/PGSQL30132_30324Phần 24.2. Nếu một đối chiếu được xác định thành công (nghĩa là, không có xung đột nào của tỷ lệ kèo bóng đá 88 đối chiếu ngầm giữa tỷ lệ kèo bóng đá 88 đối số) thì tất cả tỷ lệ kèo bóng đá 88 tham số có thể lấy được được coi là có sự hợp tác đó ngầm. Điều này sẽ ảnh hưởng đến hành vi của tỷ lệ kèo bóng đá 88 hoạt động nhạy cảm đối chiếu trong chức năng. Ví dụ, xem xét

30763_31012

lần đầu tiên sử dụngLess_thansẽ sử dụng đối chiếu chungtext_field_1text_field_2Để so sánh, trong khi việc sử dụng thứ hai sẽ sử dụngCđối chiếu.

Hơn nữa, đối chiếu được xác định cũng được coi là đối chiếu của bất kỳ biến cục bộ nào thuộc loại có thể kết hợp. Do đó, chức năng này sẽ không hoạt động khác nếu nó được viết là

31545_31731

Nếu không có tham số của tỷ lệ kèo bóng đá 88 loại dữ liệu có ghép hoặc không có đối chiếu chung nào có thể được xác định cho chúng, thì tỷ lệ kèo bóng đá 88 tham số và biến cục bộ sử dụng đối chiếu mặc định của loại dữ liệu của chúng (thường là đối chiếu mặc định của cơ sở dữ liệu, nhưng có thể khác nhau đối với tỷ lệ kèo bóng đá 88 biến của tỷ lệ kèo bóng đá 88 loại miền).

32046_32158đối chiếutùy chọn trong khai tỷ lệ kèo bóng đá 88 của nó, ví dụ

Khai tỷ lệ kèo bóng đá 88
    local_a văn bản đối chiếu "en_us";

Tùy chọn này ghi đè lên đối chiếu nếu không sẽ được cung cấp cho biến theo tỷ lệ kèo bóng đá 88 quy tắc trên.

Ngoài ra, tất nhiên là rõ ràngđối chiếuĐiều khoản có thể được viết bên trong tỷ lệ kèo bóng đá 88 hàm nếu muốn buộc tỷ lệ kèo bóng đá 88 đối chiếu cụ thể được sử dụng trong tỷ lệ kèo bóng đá 88 hoạt động cụ thể. Ví dụ,

32687_32821

Điều này ghi đè tỷ lệ kèo bóng đá 88 đối chiếu được liên kết với tỷ lệ kèo bóng đá 88 cột, tham số hoặc tỷ lệ kèo bóng đá 88 biến cục bộ được sử dụng trong biểu thức, giống như sẽ xảy ra trong lệnh SQL đơn giản.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể tỷ lệ kèo bóng đá 88 cáo vấn đề tài liệu.