Postgresql Tài liệu 8.0.26 | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 35.PL/PGSQL - SQLNgôn ngữ thủ tục | Chuyển tiếp nhanh | 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 kèo bóng đá việt nam được hiểu rõ ràng bởi10943_10953. 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 kèo bóng đá việt nam này được coi là một kèo bóng đá việt nam 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 kèo bóng đá việt nam SQLChèn, Cập nhậtvàXóacó thể được coi là các câu kèo bóng đá việt namPL/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/kèo bóng đá việt nam ghi được viết là:
định danh: =Biểu thức;
Như đã giải thích ở trên, biểu thức trong kèo bóng đá việt nam tuyên bố như vậy là được đánh giá bằng phương tiện của SQLChọnkèo bóng đá việt nam đượ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ó kèo bóng đá việt nam 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/PGSQL12362_12644
ví dụ:
user_id: = 20; Thuế: = Subtotal * 0,06;
Kết quả của AChọnkèo bóng đá việt nam 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 kèo bóng đá việt nam 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 kèo bóng đá việt nam giống như trong SQL thông thường.
Lưu ý rằng điều này khá khác vớiPostgreSQLcách giải thích bình thường củaChọn vào, trong đóthànhTarget là kèo bóng đá việt nam bảng mới được tạo. Nếu bạn muốn tạo kèo bóng đá việt nam bảng từ kèo bóng đá việt namChọnKết quả bên trong APL/PGSQLchức năng, sử dụng cú phápTạo bảng ... Như chọn.
Nếu một hàng hoặc danh sách biến được sử dụng làm mục tiêu, được chọn các giá trị phải khớp chính xác với cấu trúc của mục tiêu hoặc Lỗi thời gian chạy xảy ra. Khi một biến kèo bóng đá việt nam ghi là mục tiêu, nó tự động cấu hình chính nó theo loại hàng của truy vấn Các cột kết quả.
ngoại trừthànhmệnh đề,Chọn14494_14539Chọnkèo bóng đá việt nam 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.
15023_15230"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 35.6.6) Sau kèo bóng đá việt namChọ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 kèo bóng đá việt nam hàng đã được trả lại bởi truy vấn. Vì ví dụ:
15760_15894
Để kiểm tra xem kết quả kèo bóng đá việt nam 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à kèo bóng đá việt nam ví dụ xử lý trường hợp trong đó Không có hàng nào được trả về:
Khai báo user_rec kèo bóng đá việt nam 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á kèo bóng đá việt nam biểu thức hoặc truy vấn nhưng loại bỏ kết quả (thường là do kèo bóng đá việt nam người đang gọi kèo bóng đá việt nam 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ọnkèo bóng đá việt nam, 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 kèo bóng đá việt nam 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.
kèo bóng đá việt nam ví dụ:
thực hiện created_mv ('cs_session_page_requests_mv', my_query);
Đôi khi kèo bóng đá việt nam tuyên bố giữ chỗ không có gì hữu ích. Ví dụ, nó có thể chỉ ra rằng kèo bóng đá việt nam cánh tay của kèo bóng đá việt nam 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;
18876_18988
Thể hơn là kèo bóng đá việt nam 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 kèo bóng đá việt namYêu cầuĐối với các tình huống như vậy Như thế này.PL/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 kèo bóng đá việt nam động bên trong của bạnPL/PGSQLCác chức năng, đó là, các kèo bóng đá việt nam 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/PGSQLNhững nỗ lực bình thường đối với các kế hoạch bộ nhớ cache Đối với các kèo bóng đá việt nam sẽ không hoạt động trong các kịch bản như vậy. Để xử lý điều này loại vấn đề,thực thiTuyên bố được cung cấp:
thực thichuỗi kèo bóng đá việt nam;
WHEREchuỗi kèo bóng đá việt namlà kèo bóng đá việt nam Biểu thức mang lại kèo bóng đá việt nam chuỗi (loạiText) chứa kèo bóng đá việt nam sẽ được thực thi. Cái này Chuỗi được cho ăn theo nghĩa đen vào động cơ SQL.
20480_20525PL/PGSQLBiến được thực hiện trên kèo bóng đá việt nam sợi dây. Các giá trị của các biến phải được chèn vào kèo bóng đá việt nam Chuỗi khi nó được xây dựng.
Không giống như tất cả các kèo bóng đá việt nam khác trongPL/PGSQL, một kèo bóng đá việt nam 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 đó, kèo bóng đá việt nam là Chuẩn bị mỗi lần tuyên bố được chạy. Chuỗi kèo bóng đá việt nam 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.
Kết quả từChọnkèo bóng đá việt nam bị loại bỏ bởithực thivàChọn vàoHiện không được hỗ trợ ở trongthực thi. Vì vậy, không có cách nào để Trích xuất kết quả từ kèo bóng đá việt nam tạo ra độngChọnSử dụng đồng bằngthực thikèo bóng đá việt nam. Có hai cách khác để làm nó, tuy nhiên: một là sử dụngfor-in-Executehình thức vòng lặp được mô tả trongPhần 35.7.4và cái khác là sử dụng con trỏ vớiMở-for-Execute, như được mô tả trongPhần 35.8.2.
Khi làm việc với các kèo bóng đá việt nam động, bạn thường sẽ 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 35.2.1, có thể tiết kiệm cho bạn kèo bóng đá việt nam số nỗ lực khi dịch Mã đã nói cho kèo bóng đá việt nam sơ đồ hợp lý hơn.)
Các giá trị động sẽ được chèn vào truy vấn yêu cầu xử lý đặc biệt vì chúng có thể chứa các ký tự trích dẫn. kèo bóng đá việt nam ví dụ (điều này giả định rằng bạn đang sử dụng báo giá đô la cho toàn bộ chức năng, vì vậy trích dẫn Dấu không cần phải nhân đôi):
Thực thi 'Cập nhật bộ TBL' || quote_ident (colname) || '=' || quote_literal (newValue) || 'WHERE KEY =' || quote_literal (keyValue);
Ví dụ này hiển thị việc sử dụng các chức năngquote_ident (Text)
vàquote_literal (Text)
.cho
An toàn, các biến có chứa số nhận dạng cột và bảng
nên được truyền đến chức năngquote_ident
. Các biến chứa các giá trị
nên là chuỗi theo nghĩa đen trong kèo bóng đá việt nam được xây dựng nên
được truyền choquote_literal
. Cả hai
thực hiện các bước thích hợp để trả về văn kèo bóng đá việt nam đầu vào được đặt trong
Báo giá kép hoặc đơn tương ứng, với bất kỳ đặc biệt nào được nhúng
ký tự đã 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à kèo bóng đá việt nam ý 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 kèo bóng đá việt nam không được biết trước, bạnphảisử dụngquote_literal
.
Một ví dụ lớn hơn nhiều về kèo bóng đá việt nam động vàthực thicó thể được nhìn thấy trongVí dụ 35-6,, mà xây dựng và thực hiện kèo bóng đá việt namTạo CHỨC NĂNGkèo bóng đá việt nam 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 kèo bóng đá việt nam. Phương pháp đầu tiên là sử dụngNhận Chẩn đoánkèo bóng đá việt nam, có biểu mẫu:
Nhận chẩn đoánbiến=Mục[, ...];
kèo bóng đá việt nam này cho phép truy xuất các chỉ báo trạng thái hệ thống. MỗiMụclà kèo bóng đá việt nam từ khóa Xác định giá trị trạng thái được gán cho được chỉ định Biến (phải là loại dữ liệu phù hợp để nhận Nó). Các mục trạng thái hiện có làROW_COUNT, số lượng hàng được xử lý bởi cuối cùngSQLkèo bóng đá việt nam đượ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ấtSQLkèo bóng đá việt nam. Lưu ý rằngresult_oidchỉ hữu ích sau khiChènkèo bóng đá việt nam.
kèo bóng đá việt nam ví dụ:
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 kèo bóng đá việt nam 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/PGSQLCuộc gọi chức năng. Nó được đặt bởi từng loại sau của Các câu kèo bóng đá việt nam:
AChọn vàoBộ câu kèo bóng đá việt namTìm thấy26715_26780
Athực hiệnBộ câu kèo bóng đá việt namtìm thấyĐúng nếu nó sản xuất (và loại bỏ) kèo bóng đá việt nam hàng, sai nếu không có hàng được sản xuất.
Cập nhật, ChènvàXóaCâu kèo bóng đá việt namtìm thấyĐúng nếu tại ít nhất kèo bóng đá việt nam hàng bị ảnh hưởng, sai nếu không có hàng bị ảnh hưởng.
AFetchBộ câu kèo bóng đá việt namtìm thấyĐúng nếu nó trả lại kèo bóng đá việt nam hàng, Sai nếu không có hàng được trả về.
Achobộ câu kèo bóng đá việt namtìm thấyĐúng nếu nó lặp lại kèo bóng đá việt nam 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 kèo bóng đá việt nam (số nguyênchovòng lặp, kèo bóng đá việt nam ghichovòng lặp và kèo bóng đá việt nam ghi độngcho27897_27908tìm thấyđược đặt theo cách 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 kèo bóng đá việt nam khác trong thân vòng.
tìm thấylà kèo bóng đá việt nam biến cục bộ bên trong mỗiPL/PGSQLHàm; Vì vậy, bất kỳ Các thay đổi đối với nó chỉ ảnh hưởng đến chức năng hiện tại.