我需要更新DB2表中的几十万行。与预编译方法相比,单个update语句的执行时间更长。由于某些限制,我无法在ODBC/JDBC/CLI和PreparedStatement.executeUpdate等方面使用perl或任何此类脚本工具。
是否有一种使用db2命令行工具和过程SQL来完成这一任务的方法?我的工具集仅限于bash、SQL和DB2命令行接口。
发布于 2018-01-11 21:06:33
如果您使用10.1或更高版本,则可以使用INGEST。它几乎和负载一样快,功能更丰富,对运行系统的影响也更小。首先,您需要通过创建控制表(如果您还没有)来启用它:
db2 'call sysproc.sysinstallobjects ( 'INGEST' ,'C' , null, null )';现在,您可以摄入以下数据:
db2 "ingest from file tab1.del
format delimited (
$colb ...,
$colc ...
) update tableA set colA = null
where (colb, colc) = ($colb, $colc)"以下是developerworks的一篇文章:
https://www.ibm.com/developerworks/data/library/techarticle/dm-1304ingestcmd/index.html
这是文件:
https://dba.stackexchange.com/questions/195115
复制相似问题