Mô -đun ngôn ngữ PL/Python tự động nhập một Pythonplpy. Các chức năng vàplpy.foo.
TheplpyMô -đun cung cấp một số
thực thi
(soi kèo bóng đá truoctran vấn[,Max-Rows])Gọiplpy.execute
Vớ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ụnglen
chứ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.
Chuẩn bị
(soi kèo bóng đá truoctran vấn[,argtypes])thực thi
(kế hoạch[,Đối số[,Max-Rows]])plpy.prepare
Chuẩ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à $$
con trỏ
(soi kèo bóng đá truoctran vấn)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ọ
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.execute
vàplpy.prepare
có 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