Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подставить имя партиции в запрос динамически / 3 сообщений из 3, страница 1 из 1
19.02.2020, 16:30
    #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
19.02.2020, 16:46
    #39928546
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подставить имя партиции в запрос динамически
Код: plsql
1.
2.
3.
4.
5.
...
  execute immediate '
   select count(*) from t1 partition for ('||rd.rdate||')'
   into cnt;
...
...
Рейтинг: 0 / 0
19.02.2020, 17:42
    #39928591
MazoHist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подставить имя партиции в запрос динамически
Есть достаточно интересные функции TBL$OR$IDX$PART$NUM, DATAOBJ_TO_PARTITION
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подставить имя партиции в запрос динамически / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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