powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Динамическое формирование запроса
11 сообщений из 11, страница 1 из 1
Динамическое формирование запроса
    #32143895
s_aa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спецы, подскажите как динамически подставить имя таблицы в запрос.
Нижележащий код не работает.

DECLARE
sql_str VARCHAR2(200);
CURSOR cur_ut IS SELECT table_name FROM user_tables;
c INTEGER;
rows_processed INTEGER;
kol_rec INTEGER;
BEGIN
c := DBMS_SQL.OPEN_CURSOR;
FOR qq IN cur_ut LOOP
sql_str := 'SELECT COUNT(*) INTO kol_rec FROM ' || qq.table_name;
DBMS_SQL.PARSE( c, sql_str, dbms_sql.native );
rows_processed := dbms_sql.execute(c);
END LOOP;
DBMS_SQL.close_cursor(c);
END;
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32143911
are
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
are
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DECLARE 
  ln_cnt integer;
BEGIN 
  for rc in (SELECT table_name FROM user_tables) loop
    execute immediate 'begin SELECT COUNT(*) INTO :ln_cnt FROM '||rc.table_name ||';end;' using out ln_cnt;
    dbms_output.put_line(rc.table_name||' = '||ln_cnt);
  end loop;
END;
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32143940
s_aa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32144092
s_aa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я рано радовался ...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE
  ln_cnt integer;
BEGIN
  for rc in (SELECT table_name FROM user_tables) loop
    execute immediate 'begin SELECT COUNT(*) INTO :ln_cnt FROM '||rc.table_name 
    dbms_output.put_line(rc.table_name||' = '||ln_cnt);
  end loop;
  commit;
END;
ORA- 06552 : PL/SQL: Compilation unit analysis terminated
ORA- 06553 : PLS- 320 : the declaration of the type of this expression is incomplete
ORA- 06512 : at line  5 
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32144176
are
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
are
Гость
фигня какая-то :(
как говорят программеры пользователям: "у нас все работает..."
версия oracle какая у тебя?
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32144201
s_aa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
8.1.7
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32144311
are
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
are
Гость
sorry
у меня 8.1.7.3 и код работает
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32144816
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В пятой строчке на стоит ";"
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32145033
AndrewS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
DECLARE
  ln_cnt integer;
BEGIN
	for rc in (SELECT table_name FROM user_tables) loop
		execute immediate 'begin SELECT COUNT(*) INTO :ln_cnt FROM '||rc.table_name || '; end;'
		  using out ln_cnt;
 -- 		execute immediate %af_src_str_2 || rc.table_name
 
 -- 		   into ln_cnt;
 
	    dbms_output.put_line(rc.table_name||' = '||ln_cnt);
	end loop;
	commit;
exception
when others then dbms_output.put_line('ERR: ' || SQLERRM);
END;
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32145473
raven13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точку с запятой не бывает ставить ?
...
Рейтинг: 0 / 0
Динамическое формирование запроса
    #32145601
Фотография Eter Panji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верю
это я using пропустил
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Динамическое формирование запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]