Постійний збір на дрони FPV для ЗСУ
Закидуй дві гривні!
FPV-дрони змінюють хід війни
Змінюй хід війни!

sql,oracle, помогите...

🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
Статус: Offline
Реєстрація: 10.12.2008
Повідом.: 1050
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #1
sql,oracle, помогите...

Есть такая задача: посчитать строки во всех таблицах схемы и вывести эти значения в другую таблицу.

Собственно я делал так:

DECLARE
CURSOR get_strok IS
SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = UPPER('testers');

v_gt ALL_TABLES.TABLE_NAME%TYPE;
BEGIN
OPEN get_strok;

LOOP
EXIT WHEN get_strok%NOTFOUND;
FETCH get_strok INTO v_gt;

INSERT INTO qwe (s) /*ранее созданная таблица*/
select COUNT (*) from v_g;

END LOOP;
CLOSE get_strok;
END;

Но уперся в то, что не могу обратиться к таблице используя переменную (выделил красным цветом).

Собственно вопрос: как обратиться к таблице с помощью переменной или решить поставленную задачу другим способом?

Заранее всем большое спасибо.
 
Останнє редагування:
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #2
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #3
Ну тогда получается что -то типа:

DECLARE
TYPE GenericCursor IS REF CURSOR;
c1 GenericCursor;
sel VARCHAR2(4000);
result VARCHAR2(200);
BEGIN
sel := 'select count(*) from ||table_name|| ';', '''||table_name||''' from ALL_TABLES WHERE OWNER = UPPER('testers') ' ;

OPEN c1 FOR sel;

LOOP
EXIT WHEN c1%NOTFOUND;

FETCH c1 INTO result;
INSERT INTO qwe (s)
VALUEs (result);

END LOOP;
CLOSE c1;
END;


Но у меня проблемы с запросом. Он должен быть каким-то таким, как я понимаю, но как мне обратиться к таблице через список всех таблиц? Я предполагаю что как-то через конкатенацию....но как?
 
  • 🟡 12:04 Відбій тривоги в Харківська область.Зверніть увагу, тривога ще триває у:- Куп’янський район- Харківський район- Липецька територіальна громада- Вовчанська територіальна громада#Харківська_область
  • #4
А чем тебя NUM_ROWS из ALL_TABLES не устраивает?
 
Назад
Зверху Знизу