Đưa vào bảng PL / SQL từ một khối trong các biểu mẫu D2k của Oracle
Một bảng PL / SQL có thể được điền từ một khối bằng cách sử dụng biểu mẫu điền ẩn tích sẵn TABLE_FROM_BLOCK. Tính năng rất tiện dụng này giúp bạn không phải lặp lại khối một cách rõ ràng. Quy trình sau minh họa khái niệm:PROCEDURE populate_plsql_table(my_table1 my_table, cnt OUT NUMBER)Để sử dụng kỹ thuật này, hãy làm theo các bước sau:
IS
/* Define a PL/SQL record with two fields code and name */
TYPE state_rec IS RECORD (code varhcar2(2), name varhcar2(30));
/* Define a PL/SQL table of the record defined above */
TYPE my_table IS TABLE OF state_rec INDEX BY BINARY_INTEGER;
my_table1 my_table;
/* Define a variable of type ITEMS_IN_BLOCK. ITEMS_IN_BLOCK is a
Forms-defined table */
Item_data ITEMS_IN_BLOCK;
Cnt NUMBER;
BEGIN
Item_data(1) := 'STATE_CODE';
item_data(2) := 'STATE_NAME';
/* The call to the Forms built-in TABLE_FROM_BLOCK retrieves the records
from the block and populates the my_table1 table of records */
TABLE_FROM_BLOCK(my_table1, 'STATE',1, ALL_RECORDS, item_data);
-- The SUCCESS or FAILURE of this built-in can be assessed
-- with FORM_SUCCESS, just like any other built-in
IF NOT FORM_SUCCESS THEN
RAISE FORM_TRIGGER_FAILURE;
END IF;
Cnt := my_table1.COUNT;
END populate_plsql_table;
- Xác định một bản ghi PL / SQL tương đương với cấu trúc bản ghi sẽ được chuyển làm đầu vào. Trong trường hợp này, nó là state_rec và tạo thành hai mục MÃ và NAME tương ứng với STATE_CODE và STATE_NAME.
- Xác định bảng PL / SQL là một bảng các bản ghi thuộc loại được xác định trong bước 1. Trong trường hợp này, nó là my_table.
Lưu ý Tài liệu Oracle xác định bảng PL / SQL thuộc loại PLITBLM.TABLE_OF_ANY, nhưng việc xác định bảng PL / SQL theo cách tôi đã mô tả hoạt động tốt.
- Xác định một biến loại ITEMS_IN_BLOCK (một bảng gồm VARCHAR2 ) và đặt các phần tử riêng lẻ của nó là tên của các tên mục khối có giá trị là phần tử của loại bản ghi được xác định trong bước 1.
- Gọi TABLE_OF_ANY tích hợp sẵn với bảng PL / SQL đã xác định, tên khối đầu vào, số bản ghi bắt đầu, số bản ghi kết thúc và biến được xác định trong bước 3 được truyền dưới dạng tham số.