是否可以通过JDBC在Oracle中直接加载INSERT?
我目前使用批处理的预处理语句(通过Spring JDBC),有没有办法让它们绕过NOLOGGING表上的重做日志?
这是Oracle 11g。
答案 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发生的直接路径插入,其中解释计划显示了“加载为选择”