如何在< table_name>中选择*中动态选择分区(分区名称)? [英] how to select dynamically in select * from <table_name> partiton (Partition name)?

查看:84
本文介绍了如何在< table_name>中选择*中动态选择分区(分区名称)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有多个分区的大表.我的分区名称如下:

i have a big table with several partition. my partition name is like below:

P_13931203
P_13931204
P_13931205
P_13931206

我可以选择动态创建分区名称,如下所示:

i have a select for create partition name dynamically as below:

select 'P_' || to_char(sysdate-1,'yyyymmdd','nls_calendar=persian') from dual;
example Output: P_13931204

当我选择以下内容时,一切正常:

when i select as below everything is OK:

select *
from <table_name> partition (P_13931205);

但是当我如下选择时,我得到了错误:

but when i select as below i get error:

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 语法错误,预期: 标识符

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

推荐答案

尝试一下:-

select * from partition 
(select 'P_' || to_char( sysdate-1,'yyyymmdd','nls_calendar=persian') from dual
) Dummy_table;

因为在每次选择子查询之后,您都必须提及数据集名称.

Beacuse after every sub-query select you have to mention a dataset name.

这篇关于如何在&lt; table_name&gt;中选择*中动态选择分区(分区名称)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆