Postgresql 8.1.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 36.PL/PGSQL - SQLNgôn ngữ thủ tục | 10457_10471 | Tiếp theo |
Trong phần này và các phần sau, chúng tôi mô tả tất cả Các loại câu cách đọc kèo bóng đá được hiểu rõ ràng bởiPL/PGSQL. Bất cứ điều gì không được công nhận là một trong những Các loại câu cách đọc kèo bóng đá này được coi là một cách đọc kèo bóng đá SQL và là được gửi đến công cụ cơ sở dữ liệu chính để thực thi (sau khi thay thế của bất kỳPL/PGSQLBiến được sử dụng Trong tuyên bố). Do đó, ví dụ, các cách đọc kèo bóng đá SQLChèn, Cập nhậtvàXóacó thể được coi là các câu cách đọc kèo bóng đáPL/PGSQL, nhưng họ không được liệt kê cụ thể ở đây.
Một gán giá trị cho một biến hoặc trường hàng/cách đọc kèo bóng đá ghi được viết là:
định danh: =Biểu thức;
Như đã giải thích ở trên, biểu thức trong cách đọc kèo bóng đá tuyên bố như vậy là được đánh giá bằng phương tiện của SQLChọncách đọc kèo bóng đá được gửi đến công cụ cơ sở dữ liệu chính. Biểu thức phải mang lại một giá trị duy nhất.
Nếu kiểu dữ liệu kết quả của biểu thức không khớp với Kiểu dữ liệu của biến hoặc biến có cách đọc kèo bóng đá kích thước/độ chính xác (nhưChar (20)), The Giá trị kết quả sẽ được chuyển đổi hoàn toàn bởiPL/PGSQLThông dịch viên sử dụng kết quả Chức năng đầu ra của loại và chức năng đầu vào của loại biến. Lưu ý rằng điều này có khả năng có khả năng dẫn đến lỗi thời gian chạy được tạo bởi hàm đầu vào, nếu dạng chuỗi của Giá trị kết quả không được chấp nhận cho chức năng đầu vào.
ví dụ:
user_id: = 20; Thuế: = Subtotal * 0,06;
Kết quả của AChọncách đọc kèo bóng đá mang lại nhiều cột (nhưng chỉ có thể gán một hàng một biến bản ghi, biến loại hàng hoặc danh sách vô hướng Biến. Điều này được thực hiện bởi:
Chọn vàoTarget select_expressionstừ ...;
WHERETargetcó thể là một cách đọc kèo bóng đá ghi Biến, biến hàng hoặc danh sách đơn giản được phân tách bằng dấu phẩy Các biến và trường ghi/hàng. Theselect_expressionsvà phần còn lại của cách đọc kèo bóng đá giống như trong SQL thông thường.
Lưu ý rằng điều này hoàn toàn khác vớiPostgreSQLcách đọc kèo bóng đá giải thích bình thường củaChọn vào, trong đóthànhTarget là cách đọc kèo bóng đá bảng mới được tạo. Nếu bạn muốn tạo cách đọc kèo bóng đá bảng từ cách đọc kèo bóng đáChọnKết quả bên trong APL/PGSQLchức năng, sử dụng cú phápTạo bảng ... Như chọn.
14113_14391
ngoại trừthànhmệnh đề,ChọnCâu cách đọc kèo bóng đá giống như A SQL bình thườngChọncách đọc kèo bóng đá và có thể sử dụng toàn bộ sức mạnh của nó.
Thethànhmệnh đề có thể xuất hiện gần như Bất cứ nơi nào trongChọnTuyên bố. Theo thông thường, nó được viết ngay sauChọnNhư được hiển thị ở trên hoặc ngay trướctừ- nghĩa là ngay trước hoặc chỉ sau đó Danh sáchselect_expressions.
Nếu truy vấn trả về cách đọc kèo bóng đá hàng không, cách đọc kèo bóng đá giá trị null được gán cho mục tiêu. Nếu truy vấn trả về nhiều hàng, cái đầu tiên Hàng được gán cho (cách đọc kèo bóng đá) mục tiêu và phần còn lại bị loại bỏ. (Lưu ý rằng"Hàng đầu tiên"không được xác định rõ trừ khi bạn đã sử dụngThứ tự QUA.)
Bạn có thể kiểm tra đặc biệttìm thấyBiến (xemPhần 36.6.6) Sau cách đọc kèo bóng đáChọn vàoTuyên bố để xác định xem bài tập có thành công hay không, Đó là, ít nhất cách đọc kèo bóng đá hàng đã được trả lại bởi truy vấn. Vì ví dụ:
Chọn vào MyRec * từ empname = myname; Nếu không tìm thấy thì Tăng ngoại lệ 'nhân viên % không tìm thấy', myname; Kết thúc nếu;
Để kiểm tra xem kết quả cách đọc kèo bóng đá ghi/hàng có phải là NULL hay không, bạn có thể sử dụng Thelà nullCó điều kiện. Có, Tuy nhiên, không có cách nào để biết liệu có bất kỳ hàng bổ sung nào có thể có đã bị loại bỏ. Đây là cách đọc kèo bóng đá ví dụ xử lý trường hợp trong đó Không có hàng nào được trả về:
Khai báo user_rec cách đọc kèo bóng đá ghi; BẮT ĐẦU Chọn vào Users_Rec * từ người dùng WHERE user_id = 3; Nếu Users_Rec.Homepage là NULL thì - Người dùng không nhập trang chủ, trả lại "http: //" Trả về 'http: //'; Kết thúc nếu; KẾT THÚC;
Đôi khi người ta muốn đánh giá cách đọc kèo bóng đá biểu thức hoặc truy vấn nhưng loại bỏ kết quả (thường là do cách đọc kèo bóng đá người đang gọi cách đọc kèo bóng đá hàm có tác dụng phụ hữu ích nhưng không có giá trị kết quả hữu ích). Để làm cái này trongPL/PGSQL, Sử dụngthực hiệnTuyên bố:
thực hiệnTruy vấn;
Điều này thực thiTruy vấnvà loại bỏ kết quả. ViếtTruy vấngiống như bạn làm trong SQLChọncách đọc kèo bóng đá, nhưng thay thế Từ khóa ban đầuChọnvớithực hiện. PL/PGSQLBiến sẽ được thay thế vào truy vấn như bình thường. Ngoài ra, biến đặc biệttìm thấyđược đặt thành true nếu truy vấn được tạo tại ít nhất cách đọc kèo bóng đá hàng hoặc sai nếu nó không tạo ra hàng.
Lưu ý:Người ta có thể mong đợi rằngChọnkhông cóthànhĐiều khoản sẽ hoàn thành kết quả này, nhưng hiện tại Chỉ được chấp nhận để làm điều đó làthực hiện.
cách đọc kèo bóng đá ví dụ:
thực hiện created_mv ('cs_session_page_requests_mv', my_query);
Đôi khi cách đọc kèo bóng đá tuyên bố giữ chỗ không có gì hữu ích. Ví dụ, nó có thể chỉ ra rằng cách đọc kèo bóng đá cánh tay của cách đọc kèo bóng đá Nếu/sau đó/chuỗi khác được cố tình trống. Đối với mục đích này, sử dụng ThenullTuyên bố:
null;
Ví dụ: hai đoạn mã sau đây là tương đương:
Bắt đầu y: = x / 0; NGOẠI LỆ Khi Division_by_zero sau đó VÔ GIÁ TRỊ; - Bỏ qua lỗi KẾT THÚC;
Bắt đầu y: = x / 0; NGOẠI LỆ Khi phân chia_by_zero sau đó - bỏ qua lỗi KẾT THÚC;
Thể hơn là cách đọc kèo bóng đá vấn đề của hương vị.
Lưu ý:Trong PL/SQL của Oracle, Danh sách tuyên bố trống không được phép, và vì vậynullCâu cách đọc kèo bóng đáYêu cầu19313_19353PL/PGSQLCho phép bạn chỉ viết không có gì, thay vào đó.
Thông thường bạn sẽ muốn tạo các cách đọc kèo bóng đá động bên trong của bạnPL/PGSQLCác chức năng, đó là, các cách đọc kèo bóng đá sẽ liên quan đến các bảng khác nhau hoặc khác nhau Các loại dữ liệu mỗi khi chúng được thực thi.PL/PGSQL19957_20083thực thiTuyên bố được cung cấp:
thực thichuỗi cách đọc kèo bóng đá[thànhTarget];
WHEREchuỗi cách đọc kèo bóng đálà cách đọc kèo bóng đá Biểu thức mang lại cách đọc kèo bóng đá chuỗi (loạiText) chứa cách đọc kèo bóng đá sẽ được thực thi vàTargetlà biến cách đọc kèo bóng đá ghi, Biến hàng hoặc danh sách các biến đơn giản được phân tách bằng dấu phẩy và các trường ghi/hàng.
Lưu ý cụ thể rằng không thay thếPL/PGSQLBiến được thực hiện trên cách đọc kèo bóng đá sợi dây. Các giá trị của các biến phải được chèn vào cách đọc kèo bóng đá Chuỗi khi nó được xây dựng.
Không giống như tất cả các cách đọc kèo bóng đá khác trongPL/PGSQL, một cách đọc kèo bóng đá chạy bởi mộtthực thiTuyên bố không được chuẩn bị và lưu chỉ một lần trong suốt cuộc đời của phiên. Thay vào đó, cách đọc kèo bóng đá là Chuẩn bị mỗi lần tuyên bố được chạy. Chuỗi cách đọc kèo bóng đá có thể được tạo động trong chức năng để thực hiện các hành động trên các bảng và cột khác nhau.
Thethànhmệnh đề chỉ định nơi Kết quả của AChọncách đọc kèo bóng đá phải được được giao. Nếu một hàng hoặc danh sách biến được cung cấp, nó phải khớp chính xác với cấu trúc của các kết quả được tạo ra bởiChọn(Khi biến cách đọc kèo bóng đá ghi là được sử dụng, nó sẽ tự cấu hình để phù hợp với cấu trúc của kết quả tự động). Nếu nhiều hàng được trả lại, chỉ có hàng đầu tiên sẽ được gán chothànhBiến. Nếu không có hàng nào được trả về, null được gán chothànhBiến. Nếu khôngthànhmệnh đề được chỉ định, kết quả của AChọncách đọc kèo bóng đá bị loại bỏ.
Chọn vàohiện tại không được hỗ trợ trongthực thi.
Khi làm việc với các cách đọc kèo bóng đá động, bạn thường phải Xử lý thoát khỏi các trích dẫn đơn. Phương pháp được đề xuất cho Trích dẫn văn bản cố định trong cơ thể chức năng của bạn là trích dẫn đô la. (Nếu như Bạn có mã di sản không sử dụng báo giá đô la, xin vui lòng Tham khảo tổng quan trongPhần 36.2.1, có thể tiết kiệm cho bạn cách đọc kèo bóng đá số nỗ lực khi dịch Mã đã nói cho cách đọc kèo bóng đá sơ đồ hợp lý hơn.)
22660_22951
Thực thi 'Cập nhật bộ TBL' || quote_ident (colname) || '=' || quote_literal (newValue) || 'WHERE KEY =' || quote_literal (keyValue);
Ví dụ này thể hiện việc sử dụngquote_ident
vàquote_literal
chức năng. Cho an toàn,
cách đọc kèo bóng đá biểu thức chứa cách đọc kèo bóng đá định danh cột và bảng nên được
được truyền choquote_ident
.
Biểu thức chứa các giá trị nên là chuỗi theo nghĩa đen trong
cách đọc kèo bóng đá được xây dựng sẽ được chuyển sangquote_literal
. Cả hai đều thích hợp
Các bước để trả về văn cách đọc kèo bóng đá đầu vào được đặt trong đôi hoặc đơn
Báo giá tương ứng, với bất kỳ ký tự đặc biệt nhúng nào
thoát ra đúng cách.
Lưu ý rằng trích dẫn đô la chỉ hữu ích để trích dẫn cố định chữ. Sẽ là cách đọc kèo bóng đá ý tưởng rất tồi khi cố gắng thực hiện những điều trên Ví dụ như
Thực thi 'Cập nhật bộ TBL' || quote_ident (colname) || '= $$' || NewValue || '$$ trong đó key =' || quote_literal (keyValue);
Bởi vì nó sẽ bị hỏng nếu nội dung củaNewValuetình cờ chứa$$. Sự phản đối tương tự sẽ áp dụng cho bất kỳ
Dollar-Roting Delimiter bạn có thể chọn. Vì vậy, để trích dẫn một cách an toàn
văn cách đọc kèo bóng đá không được biết trước, bạnphảiSử dụngquote_literal
.
Một ví dụ lớn hơn nhiều về cách đọc kèo bóng đá động vàthực thiCó thể nhìn thấy trongVí dụ 36-6,, mà xây dựng và thực hiện cách đọc kèo bóng đáTạo CHỨC NĂNGcách đọc kèo bóng đá xác định chức năng mới.
Có một số cách để xác định hiệu ứng của một cách đọc kèo bóng đá. Phương pháp đầu tiên là sử dụngNhận Chẩn đoáncách đọc kèo bóng đá, có biểu mẫu:
Nhận chẩn đoánbiến=Mục[, ...];
cách đọc kèo bóng đá này cho phép truy xuất các chỉ báo trạng thái hệ thống. MỗiMục25586_25779ROW_COUNT, số lượng hàng được xử lý bởi cuối cùngSQLcách đọc kèo bóng đá được gửi xuống đếnSQLĐộng cơ vàresult_oid, oid của hàng cuối cùng được chèn bởi gần đây nhất26109_26114cách đọc kèo bóng đá. Lưu ý rằngresult_oidchỉ hữu ích sauChèncách đọc kèo bóng đá vào bảng chứa OIDS.
26294_26307
Nhận chẩn đoán integer_var = row_count;
Phương pháp thứ hai để xác định các hiệu ứng của cách đọc kèo bóng đá là Để kiểm tra biến đặc biệt có têntìm thấy, thuộc loạiBoolean. tìm thấyBắt đầu Sai trong mỗiPL/PGSQLGọi chức năng. Nó được đặt bởi từng loại sau của Các câu cách đọc kèo bóng đá:
AChọn vàobộ câu cách đọc kèo bóng đáTìm thấyĐúng nếu nó trả lại cách đọc kèo bóng đá hàng, Sai nếu không có hàng được trả về.
27004_27008thực hiệnbộ câu cách đọc kèo bóng đátìm thấyĐúng nếu nó sản xuất (và loại bỏ) cách đọc kèo bóng đá hàng, sai nếu không có hàng được sản xuất.
Cập nhật, ChènvàXóaCâu cách đọc kèo bóng đátìm thấyĐúng nếu tại ít nhất cách đọc kèo bóng đá hàng bị ảnh hưởng, sai nếu không có hàng bị ảnh hưởng.
AFetchBộ câu cách đọc kèo bóng đátìm thấyĐúng nếu nó trả lại cách đọc kèo bóng đá hàng, Sai nếu không có hàng được trả về.
A27701_27706bộ câu cách đọc kèo bóng đátìm thấyĐúng nếu nó lặp lại cách đọc kèo bóng đá hoặc nhiều lần, khác sai. Điều này áp dụng cho cả ba biến thể củachocâu cách đọc kèo bóng đá (số nguyênchovòng lặp, cách đọc kèo bóng đá ghichovòng lặp và cách đọc kèo bóng đá ghi độngchovòng lặp).tìm thấyđược đặt theo cách đọc kèo bóng đá này khichoVòng lặp thoát; bên trong việc thực hiện vòng lặp,tìm thấykhông được sửa đổi bởichoTuyên bố, mặc dù nó có thể được thay đổi bởi việc thực hiện các câu cách đọc kèo bóng đá khác trong thân vòng.
tìm thấylà cách đọc kèo bóng đá biến cục bộ bên trong mỗiPL/PGSQLHàm; bất kì cách đọc kèo bóng đá thay đổi đối với nó chỉ ảnh hưởng đến chức năng hiện tại.