首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法使用jdbctemplate将从文件中读取的sql批量插入到数据库中?

有没有办法使用jdbctemplate将从文件中读取的sql批量插入到数据库中?
EN

Stack Overflow用户
提问于 2021-05-19 22:41:41
回答 2查看 48关注 0票数 0

我想批量插入大约50000条记录到vertica数据库中。我在我的应用程序中使用了spring JDBC模板,并且我将所有这些sql保存在一个文件中,我知道有一种方法可以通过注入参数来批量插入,比如使用preparedstatement,但是如何通过sql直接批量插入它们呢?

EN

回答 2

Stack Overflow用户

发布于 2021-05-20 01:16:14

票数 0
EN

Stack Overflow用户

发布于 2021-05-20 19:42:43

如果您的SQL语句如下所示:

代码语言:javascript
运行
复制
INSERT INTO test VALUES ( 1,'Arthur','Dent',           TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 2,'Ford','Prefect',          TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 3,'Zaphod','Beeblebrox',     TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 4,'Tricia','McMillan',       TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 5,'Gag','Halfrunt',          TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 6,'Prostetnic Vogon','Jeltz',TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 7,'Lionel','Prosser',        TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 8,'Benji','Mouse',           TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES ( 9,'Frankie','Mouse',         TIMESTAMP '2017-02-05 00:00:00');
INSERT INTO test VALUES (10,'Svlad','Cjelli',          TIMESTAMP '2017-02-05 00:00:00');

文件名为test.sql,您可以搜索-替换此文件中不需要的所有内容,使其成为加载文件。

代码语言:javascript
运行
复制
$ perl -pe 's/INSERT INTO test VALUES \(//; s/TIMESTAMP //; s/\);//;' test.sql >test.csv

然后,启动Sql命令:

代码语言:javascript
运行
复制
COPY test FROM LOCAL 'test.csv' DELIMITER ',' ENCLOSED BY '''' REJECTMAX 5 EXCEPTIONS '/dev/tty';
-- in Windows: EXCEPTIONS 'NUL'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67605481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档