Bạn có thể vui lòng giúp tôi làm cách nào để tạo mảng hai chiều trong PL/SQL cho các thủ tục được lưu trữ? Các cột là động để nó có thể phát triển và thay đổi trong các loại cũng. Bất kỳ trợ giúp nào được đánh giá cao. Cảm ơn bạn trước!Tạo hoặc mô phỏng các mảng hai chiều trong PL/SQL
Tôi có đoạn mã sau:
Type CAR_TABLE_ARRAY is varray(2) of varchar2(255);
TYPE CAR_TABLE_TYPE IS TABLE OF CAR_TABLE_ARRAY;
CAR_TABLE CAR_TABLE_TYPE;
CAR_TABLE := CAR_TABLE_TYPE();
CAR_TABLE.EXTEND(10);
CAR_TABLE(1)(1) := 'DODGE';
CAR_TABLE(2)(1) := 'FORD';
CAR_TABLE(3)(1) := 'MUSTANG';
CAR_TABLE(4)(1) := 'EDSEL';
CAR_TABLE(5)(1) := 'STUDEBAKER';
DBMS_OUTPUT.put_line('1 ' || CAR_TABLE(1)(1));
DBMS_OUTPUT.put_line('2 ' || CAR_TABLE(2)(1));
DBMS_OUTPUT.put_line('3 ' || CAR_TABLE(3)(1));
DBMS_OUTPUT.put_line('4 ' || CAR_TABLE(4)(1));
DBMS_OUTPUT.put_line('5 ' || CAR_TABLE(5)(1));
Khi tôi chạy tôi nhận được lỗi sau:
ORA-06531: Reference to uninitialized collection
Mảng hai chiều tính toán chỉ là ánh xạ (X, Y) -> VALUE. Vì vậy, làm thế nào về việc tạo ra một bảng tạm thời với 3 cột: X, Y, VALUE trong PL/SQL? –
hi BycycleDude, cảm ơn bạn đã trả lời. Tuy nhiên tôi không thể tạo bảng tạm thời mà tôi nghĩ vì các cột cần phải động nên nó có thể thay đổi kiểu cột và số cột. – Jemru
Dễ dàng, chỉ cần tạo cột 'TYPE' và tạo nhiều cột' VALUE' không có giá trị và chỉ đặt cột bạn cần: X, Y, TYPE, VALUE_FLOAT, VALUE_STRING, VALUE_TIMESTAMP, VALUE_BLOB, ... –