Получить имя раздела из подзапроса динамически? - PullRequest
1 голос
/ 23 мая 2019

Мне нужно получить информацию из самого последнего раздела, созданного на этой таблице.Получить динамически вместо использования имени, как показано ниже

select *
from dw.DWT509_DADOS_NCLIE partition ('Partition Name').

select *
from dw.DWT509_DADOS_NCLIE partition 

(Select PARTITION_NAME
                  From (
                        Select PARTITION_POSITION, PARTITION_NAME, 
                               Max(PARTITION_POSITION) over (partition by TABLE_NAME) 
                            As MAX_P
                        From SYS.all_tab_partitions
                        Where TABLE_NAME='DWT509_DADOS_NCLIE'
                              --And Nvl(NUM_ROWS,0) = 0
                       )
                  Where PARTITION_POSITION = MAX_P);

1 Ответ

0 голосов
/ 23 мая 2019

Я думаю, вам придется использовать динамическую строку SQL ...

declare
  l t.x%type;
  stmt varchar2(1000);
  part varchar2(30);

begin
  select max(x) into l from t;
  stmt := 'select max(uo.subobject_name)
from   t partition for (' || l || '), user_objects uo
where  dbms_rowid.rowid_object(t.rowid) = uo.data_object_id';

  execute immediate stmt into part;

  dbms_output.put_line(part);
end;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...