Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 как пройтись по коллекции?  [new]
diggger
Guest
такой тип создал:
TYPE tab_type IS TABLE of varray_type INDEX BY varchar2(50);
tab  tab_type
далее инициализировал.

dbms_output.put_line('Result: ' || tab.first);
показывает первый ключ, а как затем выбрать ключи?
5 апр 06, 19:15    [2528658]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
anvano
Member

Откуда: Москва
Сообщений: 986
Может так?

  FOR  i IN 1..tab.count LOOP
     ..... 
     dbms_output.put_line('Result: ' || tab(i));

  END LOOP; 
5 апр 06, 19:17    [2528665]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
diggger
Guest
anvano
Может так?

  FOR  i IN 1..tab.count LOOP
     ..... 
     dbms_output.put_line('Result: ' || tab(i));

  END LOOP; 


dbms_output.put_line('Result: ' || tab(1));
PLS-00306: wrong number or types of arguments in call to '||'
5 апр 06, 19:22    [2528677]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
JuraCZ
Member

Откуда:
Сообщений: 181
s_index varchar2(50);
...........
s_index := tab.First();
while s_index is not null loop
  dbms_output.put_line(tab(s_index));
  s_index := tab.Next(s_index);
end loop;
А почему нельзя использовать index by binary_integer ???
5 апр 06, 19:36    [2528712]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
diggger
Guest
JuraCZ
s_index varchar2(50);
...........
s_index := tab.First();
while s_index is not null loop
  dbms_output.put_line(tab(s_index));
  s_index := tab.Next(s_index);
end loop;
А почему нельзя использовать index by binary_integer ???


PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
:(

Дык потому что я хочу ключи использовать символьные
5 апр 06, 19:41    [2528724]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
JuraCZ
Member

Откуда:
Сообщений: 181
Пардон, тогда
dbms_output.put_line(s_index); -- Покажет ключ
5 апр 06, 19:46    [2528742]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
pamir
Member [скрыт]

Откуда:
Сообщений: 27433
diggger
Дык потому что я хочу ключи использовать символьные

А что за тип такой - varray_type. Его явно не переваривает put_line. Но идея подсказанная тут верна.
5 апр 06, 19:49    [2528745]     Ответить | Цитировать Сообщить модератору
 Re: как пройтись по коллекции?  [new]
diggger
Guest
JuraCZ
Пардон, тогда
dbms_output.put_line(s_index); -- Покажет ключ


Да-да уже и сам понял, спасибо
5 апр 06, 19:49    [2528746]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить