powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подставить имя партиции в запрос динамически
3 сообщений из 3, страница 1 из 1
Подставить имя партиции в запрос динамически
    #39928537
новый2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Возможно ли подставить имя партиции "на лету в PL/SQL".

Хотелось бы что-то типа того
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
drop table t1;

create table t1(p1 varchar2(10),
rdate varchar2(6))
 partition by list (rdate)
(  partition PRT_201912 values ('201912'),
   partition PRT_202001 values ('202001'),
   partition PRT_202002 values ('202002'),
    partition PRT_FAKE values (DEFAULT));

insert into t1 values('1','201912');
insert into t1 values('2','201912');
insert into t1 values('3','202001');
insert into t1 values('4','201908');


SQL> select count(*)  from t1 partition for (201912);

  COUNT(*)
----------
         2



set serveroutput on
declare 
cnt number;
begin
 for rd in (select distinct  rdate from t1) loop
  dbms_output.put_line(rd.rdate||'**** ');
   select count(*) into cnt from t1 partition for (to_number(rd.rdate));
   dbms_output.put_line(rd.rdate||'= '|| cnt);
 end loop; 
dbms_output.put_line('end ');
end;
/

201912****
declare
*
ERROR at line 1:
ORA-14763: Unable to resolve FOR VALUES clause to a partition number
ORA-06512: at line 6
...
Рейтинг: 0 / 0
Подставить имя партиции в запрос динамически
    #39928546
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
...
  execute immediate '
   select count(*) from t1 partition for ('||rd.rdate||')'
   into cnt;
...
...
Рейтинг: 0 / 0
Подставить имя партиции в запрос динамически
    #39928591
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть достаточно интересные функции TBL$OR$IDX$PART$NUM, DATAOBJ_TO_PARTITION
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подставить имя партиции в запрос динамически
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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