Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Quy trình cập nhật bảng đã được điền

Điều này là do bạn đang tạo lại đối tượng. Bạn cần chuyển phiên bản khởi tạo của đối tượng vào thủ tục dưới dạng tham số:

create or replace procedure add_n_rows(
    Pn_rows in number
  , P_tab in out t_tf_tab ) is

begin
  for i in P_tab.count .. P_tab.count + Pn_rows
   loop
     P_tab.extend;
     P_tab(l_tab.last) := t_tf_row(i, 'Description for '|| i);    
   end loop;
end;

Tôi đã khai báo P_tab như một tham số OUT, điều này có nghĩa là bạn có thể thay đổi nó. Nếu bạn không muốn làm điều này, hãy xóa "out" và khai báo một biến cục bộ thuộc loại t_tf_tab , sau đó bạn có thể thay đổi.

Sau đó, bạn có thể gọi nó một cách riêng biệt, ví dụ:

declare
   l_tab t_tf_tab := t_tf_tab();
begin
   l_tab.extend;
   l_tab(l_tab.last) := t_tf_row(1. 'Hello');
   add_n_rows(3, l_tab);
end;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng không tồn tại khi sử dụng EF 6 và Oracle.ManagedDataAccess

  2. Khoảng trắng không được phép sau tiền tố tham số ':'

  3. Truy vấn có ký tự đại diện và dấu chấm không khớp với dữ liệu với chỉ mục Văn bản của Oracle

  4. Cài đặt RAC cho Cơ sở dữ liệu với Datafiles

  5. Oracle coi các chuỗi trống là NULL trong khi SQL Server thì không - điều này được xử lý như thế nào tốt nhất?