Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Значение count в курсоре


Автор: Annuta 9.2.2012, 11:00
Привет!
Есть такой запрос: select f1, count(*) from table 1 group by f1;

Если возвращать значение через конструкцию с явными курсорами, то вопросв нет.
Пытаюсь делать через FOR курсор
Вывести значение поля, понятно как:
Код

FOR CUR1 IN SELECT...
LOOP
DMBS_OUTPUT.PUTLINE(CUR1.F1);
END LOOP


А как вывести значение count ? 

Спасибо!

Автор: Zloxa 9.2.2012, 11:14
Цитата(Annuta @  9.2.2012,  11:00 Найти цитируемый пост)
А как вывести значение count ? 

в запросе указать синоним(http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_10002.htm#i2126854) для поля, возвращающего количество, тогда будет заведомо известно имя возвращаемого поля. Если вы в запросе укажете "count(*) as cnt", то обратиться  кзначению сможете по "i.cnt".

Если псевдоним не указывать, Оракл придумает имя ему сам, на свое усмотрение, и можно только гадать каким оно будет - от версии к версии это имя может меняться.
Код

SQL> begin
  2    for i in (select count(*) from dual)
  3    loop
  4      dbms_output.put_line(i."COUNT(*)");
  5    end loop;
  6  end;
  7  /
 
1
 
PL/SQL procedure successfully completed

Автор: Annuta 9.2.2012, 12:04
СПАСИБО! Разобралась! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)