двумерный массив- заполнение

 
0
 
Oracle
ava
romai | 15.11.2005, 11:17
Необходим 2-х мерный массив для задания матрицы

Тип - массив чисел
create or replace type mtp$Array$Number as table of number;


Тип - массив массива чисел
create or replace type mtp$Array2$Number as table of mtp$Array$Number;


как заполнить массив массивов

-ошибка-таблица или представление пользователя не существует
declare 
h mtp$array$number;
h1 mtp$array2$number;
begin
h := mtp$array$number(2);
h(1):= 0;
h(2):= 1;
h1 := mtp$array2$number();
for i in 1..2 loop
insert into h1(i) values(h);
end loop;
end;
Comments (2)
ava
LSD | 15.11.2005, 23:56 #
С вложенными таблицами работают немного по другому.
Переменная инициализируется конструктором совпадающим с именем типа, а его параметры, это начальное значение этой таблицы. Т.е. начало надо переписать так:
h := mtp$array$number(1, 2);

Чтобы присваивать значения за границами начального значения вложенную таблицу надо расширить с помощью extend.
В итоге твой код будет выглядеть так:
declare    
h mtp$array$number;
h1 mtp$array2$number;
begin
h := mtp$array$number(1, 2);
h1 := mtp$array2$number();
for i in 1 .. 2 loop
h1.extend;
h1(i) := h;
end loop;
end;


P.S. Пожалуйста при вставке кода в сообщение используй теги [cоde=sql] [/cоde].
ava
romai | 16.11.2005, 22:51 #
LSD спасибо всё работает - спасибо!
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
ava  LSD   romai
advanced
Submit