Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как передать результат селекта параметром в процедуру?


Страницы:   1 2

alsov1 ©   (2004-10-13 10:41:00) 

Приветствую Мастера!

Например:
 Есть процедура add
 с параметром Par in number

как в неё передать результат селекта
select id
from что-то
where что-то = чему-то;
не используя переменные???
что-то типа
execute add(select id
            from что-то
            where что-то = чему-то);
но такой вариант не проходит

Заранее спасибо


Reindeer Moss Eater   (2004-10-13 11:37:00) [21]

declare
type trand_rec is record(
 x number,
 y number,
 z number
);
type trand_arr is table of trand_rec;
rand_arr trand_arr;
begin
rand_arr := trand_arr();
for i in 1 .. 100
 loop
  rand_arr.extend;
  select dbms_Random.NORMAL,dbms_Random.NORMAL,dbms_Random.NORMAL into rand_arr(rand_arr.last).x,rand_arr(rand_arr.last).y,rand_arr(rand_arr.last).z from dual;
 end loop;

forall i in rand_arr.first .. rand_arr.last
loop
 insert into some_table values(rand_arr(i).x,rand_arr(i).y,rand_arr(i).z);
end loop;
end;


alsov1   (2004-10-13 11:31:00) [22]

2Reindeer Moss Eater

По делу подскажи, я в оракле новичок.


Reindeer Moss Eater   (2004-10-13 11:14:00) [23]

Боже ж ты мой.
Изнасиловать Оракл в такой извращенной форме.


alsov1   (2004-10-13 11:05:00) [24]

Нужно заполнить таблицу фигнёй для тестов скорости
Вот например процедура заполнения:
CREATE or replace PROCEDURE FillMyesto (
           HowMany in number,
           Id_myesto in number)

is BEGIN
  declare
     i number;
      V_KOORDINATA_X number;
      V_KOORDINATA_Y number;
      V_KOORDINATA_Z number;
     -- V_ID___MYESTO number;
      V_PYERIOD_OPROSA number;
      V_SOSTOYANIYE char;
      V_DATA_I_VRYEMYA_USTANOVKI timestamp;

  begin

    for i in 1..HowMany loop

       select dbms_Random.NORMAL into V_KOORDINATA_X from dual;
       select dbms_Random.NORMAL into V_KOORDINATA_Y from dual;
       select dbms_Random.NORMAL into V_KOORDINATA_Z from dual;
       select abs(dbms_Random.RANDOM) into V_PYERIOD_OPROSA from dual;
       select dbms_Random.STRING('p', 1) into V_SOSTOYANIYE from dual;
       select sysdate into V_DATA_I_VRYEMYA_USTANOVKI from dual;

       -- Заношу данные
       adddatchikfullparam (
                             V_KOORDINATA_X,
                             V_KOORDINATA_Y,
                             V_KOORDINATA_Z,
                             ID_MYESTO,
                             V_PYERIOD_OPROSA,
                             V_SOSTOYANIYE,
                             V_DATA_I_VRYEMYA_USTANOVKI);
    end loop;

  commit;
  end;
END;
/

Хочу избавиться от переменных и передавать параметром в процедуру результат селекта


stud   (2004-10-13 10:58:00) [25]

может лучше объяснить смысл подобной процедуры?
и субд?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо