У меня есть большой стол с несколькими разделами. мое имя раздела, как показано ниже:как выбрать динамически в выборе * от <table_name> partiton (название раздела)?
P_13931203
P_13931204
P_13931205
P_13931206
у меня есть выбор для создания имя раздела динамически, как показано ниже:
select 'P_' || to_char(sysdate-1,'yyyymmdd','nls_calendar=persian') from dual;
example Output: P_13931204
когда я выбираю, как показано ниже все в порядке:
select *
from <table_name> partition (P_13931205);
но когда я выбираю, как показано ниже, я получаю ошибку:
select *
from <table_name> partition (select 'P_' || to_char(sysdate-1,'yyyymmdd','nls_calendar=persian') from dual);
ошибка:
ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause:
*Action: Error at Line: 2 Column: 28 syntax error, expected : identifier
Почему вы не используете предложение 'where', которое выбирает правый раздел? Оптимизатор, как правило, довольно хорош в обрезке разделов в этом сценарии. – Mat