生成ansi sql INSERT INTO

Mak*_*iuk 22 java sql oracle

我有10个表的Oracle数据库.一些表具有CLOB数据文本.我需要使用java以编程方式从这些表中导出数据.导出数据应采用ANSI INSERT INTO SQL格式,例如:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Run Code Online (Sandbox Code Playgroud)

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

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

Hen*_*her 6

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


Aru*_*ash 4

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

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

请参阅https://github.com/jkrasnay/sqlbuilder

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

  • 这不是一个完整的答案。 (10认同)