R中批量/批量插入

use*_*890 5 sql sql-server odbc r jdbc

我正在尝试使用RJDBC在R中进行批量插入.看起来它一次插入一行需要花费很多时间.

我想知道是否有人知道R中的解决方案从R到SQL批量插入数据.我知道RODBC可以进行参数化插入,这种插入很快但不如批量插入快.

小智 -1

我不知道你的“R”语言,但sqlExe中有一个BULK sql语句可用。

sqlExe 是一个通过 ODBC 连接到 SQL 数据库并执行任何有效 SQL 的实用程序,此外它还有一些附加功能 ( http://sourceforge.net/projects/sqlexe/ )

例如,假设目标表是:

 table: [mydata]
 -------------------
 row_id      char(1)
 row_idx     integer
 row_desc    char(32)
Run Code Online (Sandbox Code Playgroud)

要使用 sqlExe 执行插入任务,您需要准备一个包含输入的文件:

  input.dat

    a,1,this is row 1
    b,2,this is row 2
    c,3,this is row 3
    d,4,this is row 4
Run Code Online (Sandbox Code Playgroud)

导入的命令行:

  sql --dsn MYDB -e "BULK INSERT input.dat, INSERT INTO mydata(row_id,row_idx,row_desc) VALUES(?,?,?)"
Run Code Online (Sandbox Code Playgroud)