java - Oracle插入分区绑定(bind)JDBC中的分区名称

标签 java oracle jdbc partitioning

我正在使用 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/

相关文章:

sql - 在列中查找第一个缺少的日期(Oracle)

database - Oracle 数据泵导出/导入

java - 替换 .sql 脚本中的变量并使用 Java JDBC 运行它们

java - 如何监视特定对象(如 Clob\Blob)的 Oracle 临时空间

sql - Oracle "ORA-01008: not all variables bound"错误带参数

java.sql.SQLException : No suitable driver on tomcat 8. 5

java - 在 Java 中使用 apache Spark 查询 cassandra 时速度很慢。

java - Maven:antrun 插件构建 JAR 文件 -> 如何在我的存储库中安装/部署它?

java - 如何获取HashMap中存在对应关系的计数?

java - 对Integer对象进行加操作,从目录中读取多个文件以在Java中创建词袋