kèo bóng đá hôm nay và ngày mai 8 tháng 5 năm 2025:2542_2604 | PostgreSQL: PostgreSQL 18 beta 1 được
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
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 kèo bóng đá hôm nay và ngày mai trang chohiện tạiPhiên bản hoặc kèo bóng đá hôm nay và ngày mai trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

40.7. kèo bóng đá hôm nay và ngày mai trỏ

Thay vì thực hiện toàn bộ truy vấn cùng kèo bóng đá hôm nay và ngày mai lúc, có thể thiết lập kèo bóng đá hôm nay và ngày maikèo bóng đá hôm nay và ngày mai trỏ10447_10644PL/PGSQLNgười dùng thường không cần phải lo lắng về điều đó, vìchoLoops tự động sử dụng kèo bóng đá hôm nay và ngày mai trỏ bên trong để tránh các vấn đề về bộ nhớ.) Cách sử dụng thú vị hơn là trả về một tham chiếu đến kèo bóng đá hôm nay và ngày mai trỏ mà hàm đã tạo, cho phép người gọi đọc các hàng. Điều này cung cấp một cách hiệu quả để trả về các bộ hàng lớn từ các chức năng.

40.7.1. Khai báo các biến kèo bóng đá hôm nay và ngày mai trỏ

Tất cả quyền truy cập vào kèo bóng đá hôm nay và ngày mai trỏ trongPL/PGSQLĐi qua các biến kèo bóng đá hôm nay và ngày mai trỏ, luôn thuộc loại dữ liệu đặc biệtrefcursor. Một cách để tạo biến kèo bóng đá hôm nay và ngày mai trỏ chỉ là khai báo nó là một biến của loạirefcursor. Một cách khác là sử dụng cú pháp khai báo kèo bóng đá hôm nay và ngày mai trỏ, nói chung là:

tên[[Không] cuộn] kèo bóng đá hôm nay và ngày mai trỏ [(Đối số)] choTruy vấn;

(chocó thể được thay thế bằngchoOracleKhả năng tương thích.) Nếucuộnđược chỉ định, kèo bóng đá hôm nay và ngày mai trỏ sẽ có khả năng cuộn ngược; nếu nhưKhông có cuộnđược chỉ định, tìm nạp ngược sẽ bị từ chối; Nếu không có thông số kỹ thuật nào xuất hiện, nó phụ thuộc kèo bóng đá hôm nay và ngày maio truy vấn liệu có được phép tìm kiếm ngược không.Đối số, nếu được chỉ định, là danh sách các cặp được phân tách bằng dấu phẩytên DataTypeXác định tên sẽ được thay thế bằng các giá trị tham số trong truy vấn đã cho. Các giá trị thực tế để thay thế cho các tên này sẽ được chỉ định sau, khi kèo bóng đá hôm nay và ngày mai trỏ được mở.

kèo bóng đá hôm nay và ngày mai số ví dụ:

12682_12830

Cả ba kèo bóng đá hôm nay và ngày mai này đều có kiểu dữ liệurefcursor, nhưng lần đầu tiên có thể được sử dụng với bất kỳ truy vấn nào, trong khi thứ hai có truy vấn được chỉ định đầy đủ đã được chỉ địnhBoundĐối với nó và cuối cùng có kèo bóng đá hôm nay và ngày mai truy vấn được tham số hóa liên kết với nó. (13125_13130sẽ được thay thế bằng giá trị tham số số nguyên khi kèo bóng đá hôm nay và ngày mai trỏ được mở.) Biếncurs1được cho làkhông bị ràng buộcVì nó không bị ràng buộc với bất kỳ truy vấn cụ thể nào.

40.7.2. Mở kèo bóng đá hôm nay và ngày mai trỏ

Trước khi kèo bóng đá hôm nay và ngày mai trỏ có thể được sử dụng để lấy hàng, nó phải làđã mở. (Đây là hành động tương đương với lệnh SQLTuyên bố kèo bóng đá hôm nay và ngày mai trỏ.)PL/PGSQLCó ba dạng củaMởCâu lệnh, hai trong số đó sử dụng các biến kèo bóng đá hôm nay và ngày mai trỏ không liên kết trong khi loại thứ ba sử dụng biến kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc.

Lưu ý:Các biến kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc cũng có thể được sử dụng mà không cần mở một cách rõ ràng kèo bóng đá hôm nay và ngày mai trỏ, thông quachoCâu lệnh được mô tả trongPhần 40.7.4.

40.7.2.1.Mở cho Truy vấn

MởUNBOUND_CURSORVAR[[Không] cuộn] choTruy vấn;

Biến kèo bóng đá hôm nay và ngày mai trỏ được mở và cung cấp truy vấn được chỉ định để thực thi. kèo bóng đá hôm nay và ngày mai trỏ không thể mở và nó phải được khai báo là một biến kèo bóng đá hôm nay và ngày mai trỏ không liên kết (nghĩa là, như một đơn giảnrefcursorkèo bóng đá hôm nay và ngày mai). Truy vấn phải làChọnhoặc kèo bóng đá hôm nay và ngày mai cái gì đó khác trả về hàng (chẳng hạn nhưGiải thích). Truy vấn được xử lý theo cách tương tự như các lệnh SQL khác trongPL/PGSQL: PL/PGSQLTên kèo bóng đá hôm nay và ngày mai được thay thế và gói truy vấn được lưu trong bộ nhớ cache để tái sử dụng có thể. Khi APL/PGSQL15184_15301Mở; Những thay đổi tiếp theo đối với biến sẽ không ảnh hưởng đến hành vi của kèo bóng đá hôm nay và ngày mai trỏ. ThecuộnKhông có cuộnTùy chọn có ý nghĩa tương tự như đối với kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc.

kèo bóng đá hôm nay và ngày mai ví dụ:

Mở Curs1 để chọn * từ foo WHERE key = myKey;

40.7.2.2.Mở để thực hiện

MởUNBOUND_CURSORVAR[[Không] cuộn] để thực thiQuery_String[Sử dụngBiểu thức[, ...]];

Biến kèo bóng đá hôm nay và ngày mai trỏ được mở và cung cấp truy vấn được chỉ định để thực thi. kèo bóng đá hôm nay và ngày mai trỏ không thể mở và nó phải được khai báo là một biến kèo bóng đá hôm nay và ngày mai trỏ không liên kết (nghĩa là, như một đơn giảnrefcursorkèo bóng đá hôm nay và ngày mai). Truy vấn được chỉ định làm biểu thức chuỗi, giống như trongthực thiLệnh. Như thường lệ, điều này mang lại sự linh hoạt để gói truy vấn có thể thay đổi từ lần chạy này sang lần chạy tiếp theo (xemPhần 40.10.2), và nó cũng có nghĩa là thay thế kèo bóng đá hôm nay và ngày mai không được thực hiện trên chuỗi lệnh. Như vớithực thi, giá trị tham số có thể được chèn kèo bóng đá hôm nay và ngày maio lệnh động thông quađịnh dạng ()sử dụng. ThecuộnKhông có cuộnTùy chọn có ý nghĩa tương tự như đối với kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc.

kèo bóng đá hôm nay và ngày mai ví dụ:

17114_17205

Trong ví dụ này, tên bảng được chèn kèo bóng đá hôm nay và ngày maio truy vấn thông quađịnh dạng (). Giá trị so sánh chocol1được chèn qua Asử dụngtham số, vì vậy nó không cần trích dẫn.

40.7.2.3. Mở một kèo bóng đá hôm nay và ngày mai trỏ ràng buộc

MởBound_cursorvar[([ argion_name: =]argion_value[, ...])];

Hình thức này củaMởđược sử dụng để mở một biến kèo bóng đá hôm nay và ngày mai trỏ mà truy vấn bị ràng buộc với nó khi nó được khai báo. kèo bóng đá hôm nay và ngày mai trỏ không thể mở. Một danh sách các biểu thức giá trị đối số thực tế phải xuất hiện khi và chỉ khi kèo bóng đá hôm nay và ngày mai trỏ được tuyên bố lấy các đối số. Các giá trị này sẽ được thay thế trong truy vấn.

Kế hoạch truy vấn cho một kèo bóng đá hôm nay và ngày mai trỏ ràng buộc luôn được coi là có thể lưu trữ được; không có tương đươngthực thiTrong trường hợp này. Lưu ý rằngcuộnKhông có cuộnKhông thể được chỉ định trongMở, vì hành vi cuộn của kèo bóng đá hôm nay và ngày mai trỏ đã được xác định.

Giá trị đối số có thể được truyền bằng cách sử dụngvị tríhoặcĐược đặt tênKý hiệu. Trong ký hiệu vị trí, tất cả các đối số được chỉ định theo thứ tự. Trong ký hiệu được đặt tên, tên của mỗi đối số được chỉ định bằng: =Để tách nó khỏi biểu thức đối số. Tương tự như các chức năng gọi, được mô tả trongPhần 4.3, Nó cũng được phép trộn ký hiệu vị trí và ký hiệu.

Ví dụ (những ví dụ này sử dụng các ví dụ khai báo kèo bóng đá hôm nay và ngày mai trỏ ở trên):

Mở Call2;
Mở Curs3 (42);
Mở Curs3 (khóa: = 42);

Vì sự thay thế biến được thực hiện trên truy vấn của kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc, thực sự có hai cách để truyền các giá trị vào kèo bóng đá hôm nay và ngày mai trỏ: với một đối số rõ ràng choMởhoặc ngầm bằng cách tham khảo APL/PGSQLBiến trong truy vấn. Tuy nhiên, chỉ các biến được khai báo trước khi kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc được khai báo sẽ được thay thế vào nó. Trong cả hai trường hợp, giá trị được thông qua được xác định tại thời điểmMở. Ví dụ: kèo bóng đá hôm nay và ngày mai cách khác để có được hiệu ứng tương tự nhưcurs3Ví dụ ở trên là

19831_19956

40.7.3. Sử dụng kèo bóng đá hôm nay và ngày mai trỏ

Một khi kèo bóng đá hôm nay và ngày mai trỏ đã được mở, nó có thể được thao tác với các câu lệnh được mô tả ở đây.

Những thao tác này không cần phải xảy ra trong cùng một chức năng mở kèo bóng đá hôm nay và ngày mai trỏ để bắt đầu. Bạn có thể trả lại mộtRefcursorGiá trị từ một hàm và để người gọi hoạt động trên kèo bóng đá hôm nay và ngày mai trỏ. (Bên trong, ArefcursorGiá trị chỉ đơn giản là tên chuỗi của một cổng thông tin được gọi là truy vấn hoạt động cho kèo bóng đá hôm nay và ngày mai trỏ. Tên này có thể được truyền xung quanh, được gán cho khácrefcursorkèo bóng đá hôm nay và ngày mai, v.v., mà không làm phiền cổng thông tin.)

Tất cả các cổng được đóng hoàn toàn ở cuối giao dịch. Do đó ArefcursorGiá trị chỉ có thể sử dụng để tham chiếu kèo bóng đá hôm nay và ngày mai trỏ mở cho đến khi kết thúc giao dịch.

40.7.3.1.Fetch

tìm nạp [ Hướngtừ | TRONG]kèo bóng đá hôm nay và ngày mai trỏthànhTarget;

Fetch21243_21407Chọn kèo bóng đá hôm nay và ngày maio. Nếu không có hàng tiếp theo, mục tiêu sẽ được đặt thành NULL (S). Như vớiChọn kèo bóng đá hôm nay và ngày maio, kèo bóng đá hôm nay và ngày mai đặc biệttìm thấyCó thể kiểm tra xem có lấy được kèo bóng đá hôm nay và ngày mai hàng hay không.

TheHướngmệnh đề có thể là bất kỳ kèo bóng đá hôm nay và ngày mai thể nào được phép trong SQLPostgreSQL:Lệnh ngoại trừ các lệnh có thể lấy nhiều hơn kèo bóng đá hôm nay và ngày mai hàng; cụ thể là, nó có thể làNEXT, trước, Đầu tiên, cuối cùng, Tuyệt đối Đếm, tương đối Đếm, Chuyển tiếphoặcBackward. Bỏ qua22250_2226122264_22293Tiếp theo. Trong các biểu mẫu bằng cách sử dụngĐếm, TheĐếmCó thể là bất kỳ biểu thức có giá trị số nguyên nào (không giống như SQLFetchlệnh, chỉ cho phép kèo bóng đá hôm nay và ngày mai hằng số nguyên).HướngCác giá trị yêu cầu di chuyển về phía sau có khả năng bị hỏng trừ khi kèo bóng đá hôm nay và ngày mai trỏ được khai báo hoặc mở vớicuộnTùy chọn.

kèo bóng đá hôm nay và ngày mai trỏphải là tên của ArefcursorBiến tham chiếu một cổng kèo bóng đá hôm nay và ngày mai trỏ mở.

Ví dụ:

Tìm nạp curs1 kèo bóng đá hôm nay và ngày maio rowvar;
Tìm nạp curs2 kèo bóng đá hôm nay và ngày maio foo, bar, baz;
Lấy cuối cùng từ Curs3 kèo bóng đá hôm nay và ngày maio X, Y;
Tìm nạp tương đối -2 từ call4 kèo bóng đá hôm nay và ngày maio x;

40.7.3.2.Di chuyển

Di chuyển [ Hướngtừ | TRONG]kèo bóng đá hôm nay và ngày mai trỏ;

Di chuyểnĐịnh vị lại một kèo bóng đá hôm nay và ngày mai trỏ mà không cần truy xuất bất kỳ dữ liệu nào.Di chuyểnhoạt động giống hệtFetchLệnh, ngoại trừ nó chỉ định vị lại kèo bóng đá hôm nay và ngày mai trỏ và không trả lại hàng chuyển đến. Như vớiChọn kèo bóng đá hôm nay và ngày maio, kèo bóng đá hôm nay và ngày mai đặc biệttìm thấyCó thể kiểm tra xem liệu có hàng tiếp theo để di chuyển đến.

Ví dụ:

di chuyển call1;
Di chuyển cuối cùng từ curs3;
Di chuyển tương đối -2 từ call4;
Di chuyển về phía trước 2 từ CULS4;

40.7.3.3.Cập nhật/xóa nơi hiện tại của

Cập nhậtBảngĐặt ... trong đó hiện tại củakèo bóng đá hôm nay và ngày mai trỏ;
Xóa khỏiBảng24254_24274kèo bóng đá hôm nay và ngày mai trỏ;

Khi kèo bóng đá hôm nay và ngày mai trỏ được định vị trên hàng bảng, hàng đó có thể được cập nhật hoặc xóa bằng cách sử dụng kèo bóng đá hôm nay và ngày mai trỏ để xác định hàng. Có những hạn chế về truy vấn của kèo bóng đá hôm nay và ngày mai trỏ có thể là gì (đặc biệt là không nhóm) và tốt nhất là sử dụngđể cập nhậtTrong kèo bóng đá hôm nay và ngày mai trỏ. Để biết thêm thông tin, xemkhai báoTrang tham khảo.

kèo bóng đá hôm nay và ngày mai ví dụ:

Cập nhật foo set dataval = myVal trong đó dòng điện của curs1;

40.7.3.4.Đóng

Đóngkèo bóng đá hôm nay và ngày mai trỏ;

ĐóngĐóng cổng thông tin bên dưới một kèo bóng đá hôm nay và ngày mai trỏ mở. Điều này có thể được sử dụng để phát hành tài nguyên sớm hơn cuối giao dịch hoặc để giải phóng biến kèo bóng đá hôm nay và ngày mai trỏ để được mở lại.

kèo bóng đá hôm nay và ngày mai ví dụ:

Đóng Call1;

40.7.3.5. Trở lại kèo bóng đá hôm nay và ngày mai trỏ

PL/PGSQL25425_25894

Tên cổng thông tin được sử dụng cho kèo bóng đá hôm nay và ngày mai trỏ có thể được chỉ định bởi lập trình viên hoặc được tạo tự động. Để chỉ định tên cổng thông tin, chỉ cần gán một chuỗi chorefcursorkèo bóng đá hôm nay và ngày mai trước khi mở nó. Giá trị chuỗi củaRefcursorkèo bóng đá hôm nay và ngày mai sẽ được sử dụng bởiMởlà tên của cổng thông tin cơ bản. Tuy nhiên, nếurefcursorkèo bóng đá hôm nay và ngày mai là null,Mởtự động tạo tên không xung đột với bất kỳ cổng thông tin hiện có nào và gán nó chorefcursorkèo bóng đá hôm nay và ngày mai.

Lưu ý:Biến kèo bóng đá hôm nay và ngày mai trỏ bị ràng buộc được khởi tạo thành giá trị chuỗi đại diện cho tên của nó, sao cho tên cổng thông tin giống như tên biến kèo bóng đá hôm nay và ngày mai trỏ, trừ khi lập trình viên ghi đè nó bằng cách gán trước khi mở kèo bóng đá hôm nay và ngày mai trỏ. Nhưng một biến số kèo bóng đá hôm nay và ngày mai trỏ không liên kết mặc định ban đầu cho giá trị null, do đó nó sẽ nhận được một tên duy nhất được tạo tự động, trừ khi được ghi đè.

Ví dụ sau đây cho thấy một cách một tên kèo bóng đá hôm nay và ngày mai trỏ có thể được cung cấp bởi người gọi:

Tạo bảng kiểm tra (văn bản col);
Chèn kèo bóng đá hôm nay và ngày maio các giá trị kiểm tra ('123');

Tạo chức năng Reffunc (refcursor) Trả về refcursor là '
BẮT ĐẦU
    Mở $ 1 cho chọn col từ bài kiểm tra;
    Trả lại $ 1;
KẾT THÚC;
'Ngôn ngữ plpgsql;

BẮT ĐẦU;
Chọn reffunc ('funccursor');
Tìm nạp tất cả trong funccursor;
LÀM;

Ví dụ sau sử dụng tạo tên kèo bóng đá hôm nay và ngày mai trỏ tự động:

27457_27816

Ví dụ sau đây hiển thị một cách để trả về nhiều kèo bóng đá hôm nay và ngày mai trỏ từ một hàm duy nhất:

Tạo chức năng myfunc (refcursor, refcursor) returns setof refcur
BẮT ĐẦU
    Mở $ 1 cho chọn * từ TABLE_1;
    Trả lại tiếp theo $ 1;
    Mở $ 2 cho chọn * từ bảng_2;
    Trả lại tiếp theo $ 2;
KẾT THÚC;
$$ Ngôn ngữ plpgsql;

- Cần phải trong một giao dịch để sử dụng kèo bóng đá hôm nay và ngày mai trỏ.
BẮT ĐẦU;

Chọn * từ myfunc ('a', 'b');

Tìm nạp tất cả từ a;
Tìm nạp tất cả từ b;
LÀM;

40.7.4. Lặp qua kết quả của kèo bóng đá hôm nay và ngày mai trỏ

Có một kèo bóng đá hôm nay và ngày mai thể củachoCâu lệnh cho phép lặp qua các hàng được trả về bởi một kèo bóng đá hôm nay và ngày mai trỏ. Cú pháp là:

[<<nhãn ]
VÌRecordVarinBound_cursorvar[([ argion_name: =]arging_value[, ...])] vòng lặpcâuvòng lặp cuối [ nhãn ];

Biến kèo bóng đá hôm nay và ngày mai trỏ phải bị ràng buộc với một số truy vấn khi nó được khai báo và nókhông thểĐã mở. Thecho29358_29650Mở(xemPhần 40.7.2.3).

kèo bóng đá hôm nay và ngày maiRecordVarđược định nghĩa tự động là loạiRecordvà chỉ tồn tại bên trong vòng lặp (bất kỳ định nghĩa hiện có nào của tên biến đều bị bỏ qua trong vòng lặp). Mỗi hàng được trả về bởi kèo bóng đá hôm nay và ngày mai trỏ được gán liên tiếp cho biến bản ghi này và phần thân vòng được thực thi.