我正在使用JDBC将大量数据插入到表的不同分区中。该表是系统分区的,这意味着我需要在insert语句中提供分区名称。
INSERT INTO T Partition P values (...);
我使用预准备语句绑定insert语句的值,现在我想知道是否可以绑定分区名称,因为我不知道我需要插入哪个分区,直到我看到实际上是数据。
答案 0 :(得分:2)
在标准Oracle分区方案中,您无需在INSERT
语句中提供分区名称。 Oracle分区的目标之一是application-transparent:
从应用程序的角度来看,只存在一个架构对象。 DML语句不需要修改来访问分区表。
在语句中提供分区是例外,而不是规则:Oracle足够聪明,可以在正确的分区中插入行。
但是,System Partitioning要求您提供分区名称。
不幸的是,您无法使用绑定变量动态指定分区名称,因为分区名称是对象名称,因此在解析语句时需要知道。
我建议你使用N预备语句,其中N是插入的分区数。 N是您需要的最小语句数。