我正在使用 JDBC 将大量数据插入表的不同分区。该表是系统分区的,这意味着我需要在插入语句中提供分区名称。
INSERT INTO T Partition P values (...);
我使用准备好的语句来绑定(bind)插入语句的值,现在我想知道是否也可以绑定(bind)分区名称,因为我不知道需要插入哪个分区,直到看到实际上是数据。
最佳答案
在标准 Oracle 分区方案中,您不需要在 INSERT
语句中提供分区名称。 Oracle分区的目标之一是application-transparent :
From the perspective of an application, only one schema object exists. DML statements require no modification to access partitioned tables.
在语句中提供分区是异常(exception),而不是规则:Oracle 足够聪明,可以将行插入到正确的分区中。
但是,System Partitioning要求您提供分区名称。
不幸的是,您无法使用绑定(bind)变量动态指定分区名称,因为分区名称是一个对象名称,因此在解析语句时需要知道该名称。
我建议您使用 N 准备好的语句,其中 N 是插入的分区数。 N 是您需要的最少语句数。
关于java - Oracle插入分区绑定(bind)JDBC中的分区名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16808961/