Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 работа с varray  [new]
AnonimousGuest
Member

Откуда:
Сообщений: 30
как присвоить значение элементу varray?
Есть такая фуккция:

create or replace type n4arr as varray(4) of number
/

create or replace type n4t as table of n4arr
/

create or replace function n4f(src_par number) return n4t as
result_tab n4t := n4t();
testvar number:=0;
begin
result_tab.extend(4);
result_tab(0) := 10; --здесь ругается
testvar :=10; -- а здесь всё ОК
return result_tab;
end;
/

В чём причина ошибки?
17 ноя 08, 18:11    [6451558]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
Andrey.L
Member

Откуда: Харьков
Сообщений: 1546
AnonimousGuest,

может быть индекс начинается с 1.
17 ноя 08, 18:19    [6451610]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
result_tab(1)(1) := (10);

только вы уверены, что хотите этого?
17 ноя 08, 18:23    [6451625]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
PL/SQL User’s Guide and Reference

Understanding Varrays

A varray has a maximum size, which you must specify in its type definition. Its
index has a fixed lower bound of 1 and an extensible upper bound.
17 ноя 08, 18:24    [6451631]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
orawish
result_tab(1)(1) := (10);

только вы уверены, что хотите этого?

чуть почищу:
result_tab(1)(1) := 10;
ну, или
result_tab(1) := n4arr (10,11,12,13);
17 ноя 08, 18:26    [6451637]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
AnonimousGuest
Member

Откуда:
Сообщений: 30
Нет, не этого:
у меня в функции объявлена таблица типа n4t, я хочу её первому элементу присвоить 10.
массив таблиц не нужен, наверно ошибка в типе result_tab?
17 ноя 08, 18:31    [6451657]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
AnonimousGuest
Нет, не этого:
у меня в функции объявлена таблица типа n4t, я хочу её первому элементу присвоить 10.
массив таблиц не нужен, наверно ошибка в типе result_tab?

тогда, похоже, вы не-того-типа параметр вашей функции присандалили
17 ноя 08, 18:32    [6451662]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
orawish
AnonimousGuest
Нет, не этого:
у меня в функции объявлена таблица типа n4t, я хочу её первому элементу присвоить 10.
массив таблиц не нужен, наверно ошибка в типе result_tab?

тогда, похоже, вы не-того-типа параметр вашей функции присандалили

тот параметр, который out == return
17 ноя 08, 18:34    [6451672]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
AnonimousGuest
Member

Откуда:
Сообщений: 30
Кажется я понимаю, похоже я ошибся с размерностью:

create or replace type n4t as table of n4arr создаст множество массивов, или массив массивов?
17 ноя 08, 18:39    [6451696]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
AnonimousGuest
Кажется я понимаю, похоже я ошибся с размерностью:

create or replace type n4t as table of n4arr создаст множество массивов, или массив массивов?

коллекцию массивов
17 ноя 08, 18:44    [6451709]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
August
Member

Откуда:
Сообщений: 62
AnonimousGuest
Кажется я понимаю, похоже я ошибся с размерностью:

create or replace type n4t as table of n4arr создаст множество массивов, или массив массивов?

массив массивов
17 ноя 08, 18:44    [6451711]     Ответить | Цитировать Сообщить модератору
 Re: работа с varray  [new]
AnonimousGuest
Member

Откуда:
Сообщений: 30
Тогда всё понятно.
Спасибо, буду думать дальше
17 ноя 08, 18:47    [6451726]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить