Phiên bản được hỗ trợ:3532_3541(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
Tài kèo bóng đá hom nay 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 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

38.5. kèo bóng đá hom nay

Các lệnh sau có sẵn để kèo bóng đá hom nay Từ cơ thể của chức năng PL/TCL:

SPI_EXEC?-Countn? ?-Arraytên?lệnh?Vòng lặp-Body?

Thực thi lệnh SQL được đưa ra dưới dạng chuỗi. Một lỗi trong Lệnh gây ra lỗi được nêu ra. Nếu không, Giá trị trả về củaSPI_EXEC11257_11462ChọnCâu lệnh, các giá trị của các cột đã chọn được đặt trong các biến TCL là được mô tả bên dưới.

Tùy chọn-Countgiá trị cho biếtSPI_EXECSố tối đa của các hàng để xử lý trong lệnh. Hiệu quả của điều này là có thể so sánh với việc thiết lập một kèo bóng đá hom nay vấn như một con trỏ và sau đó nóiFetchn.

Nếu lệnh làChọnCâu lệnh, các giá trị của các cột kết quả được đặt vào Các biến TCL được đặt tên theo các cột. Nếu-ArrayTùy chọn được đưa ra, các giá trị cột thay vào đó được lưu trữ vào mảng kết hợp được đặt tên, với tên cột được sử dụng làm chỉ mục mảng.

Nếu lệnh làChọncâu lệnh và khôngloop-bodytập lệnh được đưa ra, thì chỉ có hàng kết quả đầu tiên là Được lưu trữ thành các biến TCL; các hàng còn lại, nếu có, là bỏ qua. Không có lưu trữ xảy ra nếu kèo bóng đá hom nay vấn trả về không có hàng. (Trường hợp này có thể được phát hiện bằng cách kiểm tra kết quả củaSPI_EXEC.) Ví dụ,

spi_exec "chọn đếm (*) dưới dạng cnt từ pg_proc"

Sẽ đặt biến TCL$ cntvới số lượng hàng trongPG_PROCDanh mục hệ thống.

Nếu tùy chọnloop-bodyđối số được đưa ra, đó là một mảnh của tập lệnh TCL được thực thi một lần cho mỗi hàng trong Kết quả kèo bóng đá hom nay vấn. (loop-bodybị bỏ qua nếu đã cho lệnh không phải làChọn.) The Các giá trị của các cột của hàng hiện tại được lưu trữ vào TCL Biến trước mỗi lần lặp. Ví dụ,

SPI_EXEC -Array C "Chọn * từ pg_class" 
    ELOG gỡ lỗi "Have Bảng $ C (RelName)"

Sẽ in thông báo nhật ký cho mỗi hàngpg_ class. Tính năng này hoạt động tương tự như Các cấu trúc vòng lặp TCL khác; đặc biệtTiếp tụcBreakLàm việc theo cách thông thường bên trong thân vòng.

Nếu một cột của kết quả kèo bóng đá hom nay vấn là null, mục tiêu Biến cho nó là"Unset"thay vì được đặt.

spi_prepare kèo bóng đá hom nay vấn Typelist

Chuẩn bị và lưu gói kèo bóng đá hom nay vấn để thực hiện sau. Các Kế hoạch đã lưu sẽ được giữ lại cho cuộc sống của hiện tại phiên họp.

kèo bóng đá hom nay vấn có thể sử dụng các tham số, nghĩa là, người giữ chỗ cho các giá trị được cung cấp bất cứ khi nào kế hoạch thực sự thực hiện. Trong chuỗi kèo bóng đá hom nay vấn, tham khảo các tham số của Biểu tượng$ 1...$n. Nếu kèo bóng đá hom nay vấn sử dụng tham số, tên của các loại tham số Phải được đưa ra như một danh sách TCL. (Viết một danh sách trống choTypeListNếu không có tham số được sử dụng.) Hiện tại, các loại tham số phải được được xác định bởi các tên loại nội bộ được hiển thị trong hệ thống bànpg_type; Ví dụINT4khôngSố nguyên.

Giá trị trả về từspi_preparelà ID kèo bóng đá hom nay vấn được sử dụng trong Các cuộc gọi tiếp theo đếnSPI_EXECP. Nhìn thấySPI_EXECPVí dụ.

SPI_EXECP?-Countn? ?-Arraytên? ?-nullschuỗi?QueryID?danh sách giá trị? ?loop-body?

Thực hiện một kèo bóng đá hom nay vấn được chuẩn bị trước đó vớispi_prepare. QueryIDID được trả về bởispi_prepare. Nếu kèo bóng đá hom nay vấn Tham chiếu tham chiếu, ADanh sách giá trịphải được cung cấp. Đây là Một danh sách TCL của các giá trị thực tế cho các tham số. Danh sách Phải có cùng độ dài với danh sách loại tham số Trước đây được trao chospi_prepare. Bỏ quaDanh sách giá trịNếu kèo bóng đá hom nay vấn không có tham số.

Giá trị tùy chọn cho-nullslà một chuỗi không gian và'n'Nhân vật TellingSPI_EXECPNhững tham số nào là giá trị null. Nếu được đưa ra, nó phải có cùng độ dài vớidanh sách giá trị. Nếu nó không được đưa ra, tất cả các giá trị tham số không phải là không.

17219_17301SPI_EXECPhoạt động giống nhưSPI_EXEC. The-Count, -Arrayloop-body17544_17604

17619_17690

Tạo hàm T1_Count (Integer, Integer) Trả về số nguyên dưới dạng $$
    Nếu ! [thông tin tồn tại gd (kế hoạch)] 
        # Chuẩn bị kế hoạch đã lưu trong cuộc gọi đầu tiên
        Đặt gd (kế hoạch) [spi_prepare \
                "Chọn Đếm (*) là CNT từ T1 trong đó num = \ $ 1 và num <= \ $ 2" \
                [Danh sách Int4 Int4]]

    SPI_EXECP -Count 1 $ gd (kế hoạch) [Danh sách $ 1 $ 2]
    trả về $ cnt
$$ ngôn ngữ pltcl;

Chúng tôi cần dấu gạch chéo ngược bên trong chuỗi kèo bóng đá hom nay vấn được cung cấp chospi_prepareĐể đảm bảo điều đó The$nĐiểm đánh dấu sẽ được kèo bóng đá hom nayền qua ĐẾNspi_prepareas-is, và không được thay thế bằng thay thế biến TCL.

spi_lastoid

Trả về oid của hàng được chèn bởi lần cuốiSPI_EXEChoặcSPI_EXECP, nếu lệnh là một hàng đơnChènvà sửa đổi Bảng chứa OIDS. (Nếu không, bạn không nhận được bằng không.)

QUOTE chuỗi

Nhân đôi tất cả các lần xuất hiện của trích dẫn đơn và dấu gạch chéo ngược ký tự trong chuỗi đã cho. Điều này có thể được sử dụng để an toàn Trích dẫn các chuỗi được chèn vào các lệnh SQL được trao choSPI_EXEChoặcspi_prepare. Ví dụ, Hãy nghĩ về chuỗi lệnh SQL như

"Chọn '$ val' làm ret"

Trong đó biến TCLValthực tế chứakhông. Cái này sẽ dẫn đến chuỗi lệnh cuối cùng

Chọn 'không' làm ret

sẽ gây ra lỗi phân tích cú pháp trong khispi_exechoặcspi_prepare. Để làm việc đúng, Lệnh đã gửi phải chứa

Chọn 'không' làm ret

có thể được hình thành trong kèo bóng đá hom nay bằng cách sử dụng

"Chọn '[QUOTE $ VAL]' là RET"

Một lợi thế củaSPI_EXECPCó phải bạn không phải trích dẫn các giá trị tham số như thế này, Vì các tham số không bao giờ được phân tích cú pháp như một phần của SQL chuỗi lệnh.

ELOG Cấp MSG

phát ra thông báo nhật ký hoặc lỗi. Các cấp độ có thể làDebug, log, INFO, Thông báo, cảnh báo, ERRORFatal. ERROR20881_21147ERRORlệnh.Fatalhủy bỏ giao dịch và gây ra phiên hiện tại để tắt. (Có lẽ không có gì tốt lý do để sử dụng mức lỗi này trong các chức năng PL/TCL, nhưng nó được cung cấp cho tính đầy đủ.) Các cấp khác chỉ Tạo thông điệp của các cấp độ ưu tiên khác nhau. kèo bóng đá hom nay thông điệp của một ưu tiên cụ thể được báo cáo cho máy khách, được ghi vào nhật ký máy chủ hoặc cả hai đều được điều khiển bởi Thelog_min_messagesclient_min_messagesBiến cấu hình. Nhìn thấyChương 17Để biết thêm thông tin.