Phiên bản được hỗ trợ:hiện tại(17)18/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.8/9.58081_81339.4/9.38427_84999.2/9.1/9.0/8.4/8.3/8.2/8.1/8.07891_79837.4/7.3/7.2

41.3.Khai kèo bóng đá cúp c2#

Tất cả các biến được sử dụng trong một khối phải được khai kèo bóng đá cúp c2 trong phần khai kèo bóng đá cúp c2 của khối. (Các ngoại lệ duy nhất là biến vòng lặp củacho11517_11852choVòng lặp lặp qua kết quả của con trỏ được tự động khai kèo bóng đá cúp c2 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ư11888_11895,Varchar11980_11988.

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

12085_12192

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

tên[12351_12383]loại12418_12420đối chiếucollation_name ] [khô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 41.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 kèo bóng đá cúp c2 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: =.

Giá trị mặc định của kèo bóng đá cúp c2 biến được đánh giá và gán cho biến mỗi khi khối được nhập (không chỉ kèo bóng đá cúp c2 lần mỗi lần gọi chức năng). Vì vậy, ví dụ, gánbây giờ ()đến kèo bóng đá cúp c2 biến của loạiDấu thời gian14015_14132

ví dụ:

Số lượng số lượng mặc định 32;

Sau khi được khai kèo bóng đá cúp c2, 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 kèo bóng đá cúp c2

41.3.1.Khai kèo bóng đá cúp c2 tham số chức năng#

tham số được truyền cho kèo bóng đá cúp c2 chức năng được đặt tên với kèo bóng đá cúp c2 định danh$ 1,14942_14948, v.v. Tùy chọn, các bí danh có thể được khai kèo bóng đá cúp c2 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ụ:

Tạo chức năng Sales_Tax (Subtotal Real) Trả về thực là $$

Cách khác là khai kèo bóng đá cúp c2 rõ ràng một bí danh, sử dụng cú pháp khai kèo bóng đá cúp c2

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 là $$

Lưu ý

18081_18151Subtotalcó thể được tham chiếu làsales_tax.subtotal18257_1834318383_18373có thể đủ điều kiện với nhãn đó, thay vào đó.)

kèo bóng đá cúp c2 số ví dụ khác:

Tạo chức năng (varchar, integer) trả về số nguyên dưới dạng $$

18891_18900PL/PGSQLHàm được khai kèo bóng đá cúp c2 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ư kèo bóng đá cúp c2 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;

Tạo chức năng Sales_Tax (Subtotal Real, Out Tax Real) là $$

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 (kèo bóng đá cúp c2) 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ị. kèo bóng đá cúp c2 ví dụ tầm thường là:

18048_18288

Như đã thảo luận trongPhần 38.5.418439_1852818548_18555mệnh đề được đưa ra, nó phải nói18812_18828.

18848_18893

Tạo quy trình sum_n_product (x int, y int, out sum int, out prod int) AS $$

Trong một cuộc gọi đến một thủ tục, tất cả kèo bóng đá cúp c2 tham số phải được chỉ định. Đối với kèo bóng đá cúp c2 tham số đầu ra,nullCó thể được chỉ định khi gọi quy trình từ SQL đơn giản:

gọi sum_n_product (2, 4, null, null);

Tuy nhiên, khi gọi kèo bóng đá cúp c2 thủ tục từPL/PGSQL, thay vào đó bạn nên viết kèo bóng đá cúp c2 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.Phần 41.8.3để biết chi tiết.

Một cách khác để khai kèo bóng đá cúp c2PL/PGSQLHàm là với19882_19897, ví dụ:

Tạo chức năng mở rộng_sales (p_itemno int)

Điều này hoàn toàn tương đương với việc khai kèo bóng đá cúp c2 một hoặc nhiềuOuttham số và chỉ địnhreturn setofSomethype.

Khi loại trả về của APL/PGSQLHàm được khai kèo bóng đá cúp c2 là loại đa hình (xemPhần 38.2.5), kèo bóng đá cúp c2 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ừ kèo bóng đá cúp c2 loại đầu vào thực tế.Phần 41.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 bắt buộc.$ 0cũng có thể được đưa ra kèo bóng đá cúp c2 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ó21185_21188Nhà điều hành:

21220_21438

Có thể thu được hiệu ứng tương tự bằng cách khai kèo bóng đá cúp c2 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; kèo bóng đá cúp c2 tham số đầu ra tự phục vụ cùng một mục đích.

21733_21930

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

22208_22383

Với ví dụ này, kèo bóng đá cúp c2 cuộc gọi như

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

sẽ hoạt động, tự động quảng bá kèo bóng đá cúp c2 đầ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.

41.3.2.bí danh #

newNamebí danh choOldName;

23159_23185bí danhCú pháp tổng quát hơn so với đề xuất trong phần trước: Bạn có thể khai kèo bóng đá cúp c2 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 kèo bóng đá cúp c2

kể từbí danhTạo hai cách khác nhau để đặt tên cho cùng kèo bóng đá cúp c2 đố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.

41.3.3.Sao chép kèo bóng đá cúp c2 loại#

tên 24255_24282.Cột%loại24357_24383 biến%loại

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

user_id users.user_id%type;

cũng có thể viết trang trí mảng sau25057_25084, do đó tạo ra kèo bóng đá cúp c2 biến chứa kèo bóng đá cúp c2 mảng của loại được tham chiếu:

user_ids user.user_id%type [];

Giống như khi khai kèo bóng đá cúp c2 các cột bảng là mảng, không quan trọng bạn có viết nhiều cặp khung hay kích thước mảng cụ thể:PostgreSQLXử lý tất cả kèo bóng đá cúp c2 mảng của một loại phần tử nhất định là cùng loại, bất kể tính thứ nguyên. (Nhìn thấyPhần 8.15.125898_25702

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ên28028_28034Real), bạn có thể không cần thay đổi định nghĩa chức năng của mình.

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

41.3.4.Loại hàng#

tên Table_Name%RowType;tên composite_type_name28995_28999

27011_27058hàngBiến (hoặcloại hàngBiến). kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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ụng27837_27849%RowTypeKý hiệu; Hoặc nó có thể được khai kèo bóng đá cúp c2 bằng cách đặt tên của một loại tổng hợp.PostgreSQLCho dù bạn viết%RowTypehoặc không. Nhưng biểu mẫu với%RowTypecó khả năng di động hơn.)

như với%loại,%RowTypeCó thể được theo sau bằng cách trang trí mảng để khai kèo bóng đá cúp c2 một biến chứa một mảng loại tổng hợp được tham chiếu.

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

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

Tạo chức năng Merge_Fields (T_Row Bảng1) Trả về văn bản dưới dạng $$

29240_29288#

tênRecord;

Biến bản ghi tương tự như kèo bóng đá cúp c2 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ặccho29705_29982

Lưu ý rằngRecordkhông phải là loại dữ liệu thực sự, chỉ có kèo bóng đá cúp c2 trình giữ chỗ. Người ta cũng nên nhận ra rằng khi APL/PGSQLHàm được khai kèo bóng đá cúp c2 để trả về loạiRecord, Đây không hoàn toàn giống với kèo bóng đá cúp c2 biến bản ghi, mặc dù kèo bóng đá cúp c2 hàm như vậy có thể sử dụng kèo bóng đá cúp c2 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 kèo bóng đá cúp c2 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 đó kèo bóng đá cúp c2 biến bản ghi có thể thay đổi cấu trúc hàng của nó trên đường.

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

Khi APL/PGSQL31083_31275Phần 23.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 kèo bóng đá cúp c2 đối chiếu ngầm giữa kèo bóng đá cúp c2 đối số) thì tất cả kèo bóng đá cúp c2 tham số có thể lấy được được coi là có sự hợp tác đó ngầm.

31714_31983

lần đầu tiên sử dụngLess_thansẽ sử dụng đối chiếu chungtext_field_1text_field_232180_32213Cđối chiếu.

32284_32481

32498_32882

Nếu không có tham số của kèo bóng đá cúp c2 loại dữ liệu có kết hợp hoặc không có đối chiếu chung nào có thể được xác định cho chúng, thì kèo bóng đá cúp c2 tham số và biến cục bộ sử dụng đối chiếu mặc định của kiểu 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 kèo bóng đá cúp c2 biến của kèo bóng đá cúp c2 loại miền)..

32997_33109đối chiếuTùy chọn trong khai kèo bóng đá cúp c2 của nó, ví dụ

Khai kèo bóng đá cúp c2

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 kèo bóng đá cúp c2 quy tắc trên.

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

33838_33772

Điều này ghi đè kèo bóng đá cúp c2 đối chiếu được liên kết với kèo bóng đá cúp c2 cột, tham số hoặc kèo bóng đá cúp c2 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ớpMẫu nàyĐể kèo bóng đá cúp c2 cáo vấn đề tài liệu.