Oracle通过JDBC直接加载INSERT?

时间:2011-03-03 19:57:15

标签: oracle jdbc oracle11g

是否可以通过JDBC在Oracle中直接加载INSERT?

我目前使用批处理的预处理语句(通过Spring JDBC),有没有办法让它们绕过NOLOGGING表上的重做日志?

这是Oracle 11g。

5 个答案:

答案 0 :(得分:4)

直接路径插入只能在insert into x as select * from y方案中使用。这可以使用jdbc完成,没问题。使用insert和values无法完成此操作。当数据库处于强制日志记录模式时,这也无法完成。大多数情况下,当备用数据库连接时,主数据库将处于强制记录模式。

正如Gary Myers所说,自11gR2以来,有APPEND_VALUES提示。与“旧”追加提示一样,它只应用于批量插入。

我希望这有帮助, 罗纳德。

答案 1 :(得分:2)

11gR2中引入了APPEND_VALUES提示,用于INSERT ... VALUES的直接路径插入。

没有可用的11gR2实例来测试它是否适用于JDBC batch inserts。值得一试。

答案 2 :(得分:0)

insert /*+ append */ into desttab select * from srctab 

在JDBC中不起作用?

答案 3 :(得分:0)

使用:

INSERT /*+ APPEND_VALUES */ INTO table_name (column1, column2) values (?,?);

答案 4 :(得分:0)

我能够在Oracle 12c和JDBC批处理中使用APPEND_VALUES提示。我验证了通过Oracle Enterprise Manager发生的直接路径插入,其中解释计划显示了“加载为选择”