pl / sql:使用具有不同值的查询命中变量(不同)分区

时间:2012-05-18 11:12:35

标签: sql oracle plsql

表包含2个分区 即x,y

我们必须使用非常量值的变量查询表,并且基于这些变量,必须从x或y分区获取数据

如果Var = 1,我们必须点击x分区,如果var = 2,我们必须点击y分区

类似的东西:

begin 
var :=&var

  delete  table partition(&var) where varaibles =some values

end;

我遇到了“非法分区使用”的问题

我们可以通过替换值

动态地命中分区

1 个答案:

答案 0 :(得分:1)

如果要指定分区名称,则需要使用动态SQL。

但是,您几乎不需要显式指定分区名称。假设您的WHERE子句包含对表所分区的任何列的谓词,Oracle将自动执行相应的分区修剪,以便它只需要访问数据所在的特定分区或分区。