0

我正在使用 JDBC 将大量数据插入到表的不同分区中。该表是系统分区的,这意味着我需要在插入语句中提供分区名称。

INSERT INTO T Partition P values (...);

我使用准备好的语句来绑定插入语句的值,现在我想知道是否也可以绑定分区名称,因为在看到实际数据之前我不知道需要插入哪个分区。

4

1 回答 1

2

在标准的 Oracle 分区方案中,您不需要在INSERT语句中提供分区名称。Oracle 分区的目标之一是应用程序透明

从应用程序的角度来看,只存在一个模式对象。DML 语句无需修改即可访问分区表。

在语句中提供分区是例外而不是规则:Oracle 足够聪明,可以将行插入正确的分区。

但是,系统分区要求您提供分区名称。

不幸的是,您不能使用绑定变量动态指定分区名称,因为分区名称是对象名称,因此需要在解析语句时知道。

我建议您使用 N 准备好的语句,其中 N 是插入的分区数。N 是您需要的最少语句数。

于 2013-05-29T08:46:20.713 回答