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
Tài soi kèo bóng đá truoctran 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ế.

42.7. Truy cập cơ sở dữ soi kèo bóng đá truoctran

Mô -đun ngôn ngữ PL/Python tự động nhập một Pythonplpy. Các chức năng vàplpy.foo.

42.7.1.

TheplpyMô -đun cung cấp một số

plpy.thực thi(soi kèo bóng đá truoctran vấn[,Max-Rows])

Gọiplpy.executeVới chuỗi soi kèo bóng đá truoctran vấn và đối số giới hạn hàng tùy chọn

Đối tượng kết quả mô phỏng danh sách hoặc từ điển

RV = plpy.execute ("Chọn * từ my_table", 5)

Trả về tối đa 5 hàng từmy_table. Nếu nhưmy_tableCó cộtmy_column, nó sẽ được soi kèo bóng đá truoctran như:

foo = rv [i] ["my_column"]

Số lượng hàng được trả về có thể được lấy bằng cách sử dụnglenchức năng.

Đối tượng kết quả có các phương thức bổ sung này:

NROWS()

Trả về số lượng hàng được xử lý bởiCập nhậtLệnh sẽ đặtTrở vềđược sử dụng).

status()

Thespi_execute ()Giá trị trả lại.

colnames()
coltypes()
coltypmods()

Trả lại danh sách các tên cột, Danh sách cột

Những phương pháp này nêu ra một ngoại lệ khi được gọiCập nhậtkhông cóTrở vềhoặcBẢNG DROP. Nhưng nó ổn

Đối tượng kết quả có thể được sửa đổi.

Lưu ý rằng gọiplpy.executesẽ gây ra toàn bộ kết quảplpy.cursorthay vìplpy.execute.

plpy.Chuẩn bị(soi kèo bóng đá truoctran vấn[,argtypes])
plpy.thực thi(kế hoạch[,Đối số[,Max-Rows]])

plpy.prepareChuẩn bị

plan = plpy.prepare ("chọn last_name từ my_users trong đó first_name = $ 1", ["văn bản"])

Textlà loại của$ 1. Đối số thứ hai là tùy chọn nếu bạn

Sau khi chuẩn bị một tuyên bố, bạn sử dụng một biến thể củaplpy.executeđến

rv = plpy.execute (kế hoạch, ["name"], 5)

Chuyển kế hoạch làm đối số đầu tiên (thay vì

Các tham số soi kèo bóng đá truoctran vấn và các trường hàng kết quả được chuyển đổiPhần 42.3. Các

Khi bạn chuẩn bị kế hoạch bằng mô -đun PL/PythonChương 43) để mô tả vềSDhoặcGD(xemPhần 42.4). Vì

Tạo chức năng sử dụng đã sử dụng () trả về kích hoạt là $$
plpy.con trỏ(soi kèo bóng đá truoctran vấn)
plpy.con trỏ(kế hoạch[,Đối số])

Theplpy.cursorHàmplpy.execute(Ngoại trừ giới hạn hàng)plpy.execute, hoặc là chuỗi soi kèo bóng đá truoctran vấn hoặc A

Đối tượng con trỏ cung cấp mộtFetchPhương pháp chấp nhận số nguyênFetch, đối tượng được trả về sẽFetchBắt đầu trả lại kết quả trốngGiao diện Iterator, năng suất một hàng tại

Một ví dụ về hai cách xử lý dữ soi kèo bóng đá truoctran từ một lớn

Tạo chức năng Count_odd_iterator () Trả về số nguyên dưới dạng $$

con trỏ được tự động xử lý. Nhưng nếu bạn muốnĐóngPhương pháp. Sau khi đóng, a

Tip:Không nhầm lẫn các đối tượng được tạo bởiplpy.cursorvới DB-APIThông số API cơ sở dữ soi kèo bóng đá truoctran Python. Họ

42.7.2. Bẫy lỗi

Các chức năng truy cập cơ sở dữ soi kèo bóng đá truoctran có thể gặp lỗi,plpy.executeplpy.preparecó thể nâng cao một thể hiện của mộtplpy.spierror, mà bởithử/ngoại trừXây dựng. Ví dụ:

Tạo chức năng Try_adding_joe () trả về văn bản dưới dạng $$

lớp thực tế của ngoại lệ được nâng lên tương ứngBảng A-1Để biết danh sách các điều kiện có thể. Mô -đunplpy.spiexceptionsXác định một lớp ngoại lệsoi kèo bóng đá truoctranĐiều kiện,Division_by_zerotrở thànhDivisionbyzero, độc đáo_violationtrở thànhđộc đáo, fdw_errortrở thànhfdwerror, v.v. Mỗi ngoại lệ nàySpierror. Cái này

23087_23641

Lưu ý rằng vì tất cả các ngoại lệ từplpy.spiexceptionsDi chuyển mô -đun từSpierror, anngoại trừĐiều khoản xử lý nó sẽ bắt bất kỳ

như một cách xử lý các lỗi khác nhauSpierrorNgoại lệ và xác định tình trạng lỗi cụ thể bên trongngoại trừkhối bằng cách nhìn vàoSQLSTATEthuộc tính của ngoại lệ"SQLSTATE"Mã lỗi. Cách tiếp cận này