【发布时间】:2015-04-28 16:26:17
【问题描述】:
我有一张有几个分区的大桌子。我的分区名称如下:
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 命令未正确结束 00933. 00000 - “SQL 命令未正确结束” *原因:
*行动: 行错误:2 列:28 语法错误,预期: 标识符
【问题讨论】:
-
为什么不使用
where子句来选择正确的分区?在这种情况下,优化器通常非常擅长分区修剪。
标签: sql oracle partitioning