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

Откуда:
Сообщений: 163
Уважаемые господа программисты! помогите начинающему програмеру.
Есть переменные, имена : а1, а2, а3, ... а8, необходимо перебрать эти переменные (в цикле) и присвоить им определенные значения. Как можно обратиться к этим переменным, наращивая часть имени переменных в цикле , т.е. for i in 1..8?
6 мар 08, 16:10    [5381127]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
erkatrina
Уважаемые господа программисты! помогите начинающему програмеру.
Есть переменные, имена : а1, а2, а3, ... а8, необходимо перебрать эти переменные (в цикле) и присвоить им определенные значения. Как можно обратиться к этим переменным, наращивая часть имени переменных в цикле , т.е. for i in 1..8?


К переменным никак, только используя коллекции

PS аналогичный вопрос был буквально вчера - позавчера...
6 мар 08, 16:11    [5381136]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
Borland
Member

Откуда: $HOME
Сообщений: 15839
А массив объявить не судьба?
-----
Все великие дела совершаются в командной строке
6 мар 08, 16:12    [5381138]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
erkatrina
Member

Откуда:
Сообщений: 163
[quot Borland]А массив объявить не судьба?
-----
нет, из этих переменных мне нужно изъять данные. А что бы их изъять, нужно к ним обратиться по имени , в цикле.
6 мар 08, 16:38    [5381362]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
erkatrina
Member

Откуда:
Сообщений: 163
tru55
erkatrina
Уважаемые господа программисты! помогите начинающему програмеру.
Есть переменные, имена : а1, а2, а3, ... а8, необходимо перебрать эти переменные (в цикле) и присвоить им определенные значения. Как можно обратиться к этим переменным, наращивая часть имени переменных в цикле , т.е. for i in 1..8?


К переменным никак, только используя коллекции

PS аналогичный вопрос был буквально вчера - позавчера...




Спасибо, поищу повнимательней!
6 мар 08, 16:40    [5381377]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116328
erkatrina
[quot Borland]А массив объявить не судьба?
-----
нет, из этих переменных мне нужно изъять данные. А что бы их изъять, нужно к ним обратиться по имени , в цикле.


Такой формулировки я еще не слышал.
Что значит "изъять данные из переменных" ?
Может чуть подробнее расскажете о задаче ?
6 мар 08, 16:40    [5381381]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
erkatrina
tru55
erkatrina
Уважаемые господа программисты! помогите начинающему програмеру.
Есть переменные, имена : а1, а2, а3, ... а8, необходимо перебрать эти переменные (в цикле) и присвоить им определенные значения. Как можно обратиться к этим переменным, наращивая часть имени переменных в цикле , т.е. for i in 1..8?


К переменным никак, только используя коллекции

PS аналогичный вопрос был буквально вчера - позавчера...


Спасибо, поищу повнимательней!


вот :)
https://www.sql.ru/forum/actualthread.aspx?tid=533089
6 мар 08, 16:42    [5381406]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5930
Замени цикл на последовательность операторов.


procedure тело_цикла(ai in out nocopy ...

end тело_цикла;

...
-- for i in 1..8 loop
тело_цикла(a1);
тело_цикла(a2);
тело_цикла(a3);
тело_цикла(a4);
тело_цикла(a5);
тело_цикла(a6);
тело_цикла(a7);
тело_цикла(a8);
-- end loop;

6 мар 08, 16:45    [5381435]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
erkatrina
Member

Откуда:
Сообщений: 163
dmidek
[quot erkatrina][quot Borland]А массив объявить не судьба?
-----

Такой формулировки я еще не слышал.
Что значит "изъять данные из переменных" ?
Может чуть подробнее расскажете о задаче ?


:)) ну я имела ввиду оперировать переменными с их значениями. Эти переменные - входные параметры из какой-то внешней системы. есть а1, в1; а2, в2; а3, в3; ... и т.д. и мне нужно обработать каждую пару значений этих параметров, таких пар 20.
6 мар 08, 16:46    [5381450]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
Borland
Member

Откуда: $HOME
Сообщений: 15839
Простой корявый пример:
Enter password:
Connected.
SQL>
SQL>
SQL>
SQL> set serverout on
SQL> declare
  2   type tar is varray(8) of int;
  3   ar tar:=tar();
  4   i int;
  5  begin
  6   for i in 1..8
  7    loop
  8     ar.extend;
  9     ar(i):=i;
 10    end loop;
 11   for i in 1..8
 12    loop
 13     dbms_output.put_line(ar(i));
 14    end loop;
 15
 16  end;
 17  /
1
2
3
4
5
6
7
8
массив VARRAY - один из типов коллекций.
-----
Все великие дела совершаются в командной строке
6 мар 08, 17:45    [5382028]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
==Tims==
Member [заблокирован]

Откуда: Гена Евтушенко
Сообщений: 343
for i in 1..x loop
execute immediate 'begin pkg.a'||i:= '||...||'; end;';
end loop;

dsql ))
6 мар 08, 17:52    [5382103]     Ответить | Цитировать Сообщить модератору
 Re: Перебор переменных(простой вопрос)  [new]
erkatrina
Member

Откуда:
Сообщений: 163
Спасибо всем большое, уважаемые господа программисты!
Сделала через EXECUTE IMMEDIATE. Все получилось!
11 мар 08, 10:45    [5392410]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить