Generate ansi sql INSERT INTO

2022-09-02 01:37:32

我有10个表的Oracle数据库。某些表具有 CLOB 数据文本。我需要使用java按语法从这些表中导出数据。导出数据应采用 ANSI INSERT INTO SQL 格式,例如:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

主要思想是我需要将这些数据导入三个不同的数据库:ORACLEMSSQLMySQL。据我所知,所有这些数据库都支持ANSI INSERT INTO。但是我还没有找到任何用于生成数据SQL脚本的java API /框架。我不知道如何处理CLOB数据,如何导出它。
使用java从数据库导出数据的最佳方法是什么?

更新:(01.07.2018)
根据这个答案,我想不可能插入超过4000字节的文本数据。如何以编程方式使用Java生成PL\SQL脚本?或者是否有任何其他支持ORACLE,MSSQL等的导出格式?


答案 1

你有没有想过一个合适的ORM-Api?我脑海中的第一件事就是Hibernate或更抽象的JPA / JPQL。该框架确实知道所有主要的sql方言。您所需要的只是定义您与方言的联系。比你从数据库中检索数据并将其映射到POJO,然后你把数据推送(插入)到你不同的(其他方言)连接。我认为应该很好,即使我从来没有这样做过。但我知道JPA并不新鲜,并且被广泛用于更改数据库,即使软件已经在生产中也是如此。这种方法有点不成功,因为每一行都被转换为POJO,并且没有可用的大容量插入。


答案 2

如果您正在寻找SQL生成,那么有许多可用的sqlbuilder库,您可以使用它们。

可以使用元数据从 select * 查询中获取列名和类型,并在插入查询中使用它。

查看 https://github.com/jkrasnay/sqlbuilder

更多关于它的信息,请访问 http://john.krasnay.ca/2010/02/15/building-sql-in-java.html


推荐