The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"перебор таблиц в цикле"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Базы данных, SQL)
Изначальное сообщение [ Отслеживать ]

"перебор таблиц в цикле"  +/
Сообщение от nastr (??) on 23-Фев-12, 19:20 
Задача следующая, в БД есть таблицы с PCEF_USERBASE_00 по PCEF_USERBASE_99.
нужно посчитать сколько строк в каждой таблице и вывести в следующем формате:
название таблицы                   количество строк
PCEF_USERBASE_хх                   4888

во-первых я не знаю как запросить вывод имени таблицы.
я решил задачу так:
select count(*) from PCEF_USERBASE_00 union
select count(*) from PCEF_USERBASE_01 union
...........................................
select count(*) from PCEF_USERBASE_99

итого 100 строк, не очень изящно.

хочу решить задачу через цикл, как то так:
declare
       i number := 0;
       j varchar2(10);
       v_sql varchar2(2000);
     begin
          for i in 1..99 loop
               if i < 10 then
                    j := '0'||i;
               else
                    j := i;
               end if;
               v_sql := 'select count(*) from PCEF_UserBase_'||j||'';
              execute immediate v_sql;
           end loop;
           commit;
     end;
/

Подскажите пожалуйста, как вывести имена таблиц, и как правильно реализовать цикл?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "перебор таблиц в цикле"  +/
Сообщение от PavelR (ok) on 23-Фев-12, 19:56 

> Подскажите пожалуйста, как вывести имена таблиц, и как правильно реализовать цикл?

Вы, надеюсь понимаете, что в мире больше чем одна СУБД ?

Я, конечно, понимаю, что это вопрос по Oracle, но лезть в справочники, вспоминать как получить перечень таблиц базы данных, не хочется, если вопрошающий не прикладывает усилий чтобы помочь отвечающим.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "перебор таблиц в цикле"  +/
Сообщение от nastr (??) on 23-Фев-12, 20:01 
> Вы, надеюсь понимаете, что в мире больше чем одна СУБД ?
> Я, конечно, понимаю, что это вопрос по Oracle

Извиняюсь, СУБД действительно Oracle Release 11.1.0.7.0

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "перебор таблиц в цикле"  +/
Сообщение от PavelR (ok) on 23-Фев-12, 20:32 
>> Вы, надеюсь понимаете, что в мире больше чем одна СУБД ?
>> Я, конечно, понимаю, что это вопрос по Oracle
> Извиняюсь, СУБД действительно Oracle Release 11.1.0.7.0

http://lmgtfy.com/?q=oracle+%D0%BF%D0%BE...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "перебор таблиц в цикле"  +/
Сообщение от nastr (??) on 23-Фев-12, 22:00 
select table_name,num_rows from USER_TABLES where table_name like '%PCEF_USERBASE_%';
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "перебор таблиц в цикле"  +/
Сообщение от PavelR (ok) on 24-Фев-12, 10:50 
> select table_name,num_rows from USER_TABLES where table_name like '%PCEF_USERBASE_%';

первый % не нужен.

select table_name,num_rows from USER_TABLES where table_name like 'PCEF_USERBASE_%';


Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру