java - 如何将一个表的列数据迁移为另一个表的列,这两个表都属于不同的数据库
问题描述
我正在构建一个 java 实用程序,通过它我可以将属于 database1 的特定表的列的值复制到具有不同模式且属于 database2 的表的列中。这是一个普通的 Maven 项目。属于 database2 的表里面什么都没有,表有一个主键,应该是一个自动增量器。
connectionList.add(conn); //database connection 1
connectionList.add(focusConn); ////database connection 2
String selectSql="SELECT abcColumn FROM abc k";
String insertSql= "INSERT INTO cba values(?)";
Statement stmt= focusConn.createStatement();
PreparedStatement pstmt= conn.prepareStatement(insertSql);
ResultSet rs= stmt.executeQuery(selectSql);
while(rs.next())
{
final String foo= rs.getString("abcColumn");
pstmt.clearParameters();
pstmt.setString(1, foo);
pstmt.executeUpdate();
}
}
但是,当我运行它时,我得到:
Sql = INSERT INTO cba values(:1 ), OriginalSql = INSERT INTO cba values(?), Error Msg = ORA-00947: not enough values
虽然我只传递了一个值,但它仍然给我这样的错误。我在 Dbeaver 脚本编辑器中运行它
INSERT INTO cba(abcColumn) VALUES('1009362')
现在它要求我输入主键值,我如何编写插入语句以便我可以自动增加主键的值。
SQL Error [1400] [23000]: ORA-01400: cannot insert NULL into ("abc_Schema"."cba"."cbaColumn")
解决方案
推荐阅读
- python-3.x - 如何修复:提交 Python 代码时,预期为 2 输出,但在 PASTA 上得到 0
- lightbox2 - 如何在 Lightbox v2.10.0 中链接 Youtube 视频
- docker - mesos + marathon组合中服务ip变化的解决方法能告诉我吗?
- java - 在杰克逊序列化后避免列表的类型信息
- angular - 异步修改数组 observable 中的每一项,并返回修改后的 observable
- javascript - 每隔几分钟编辑同一条消息
- php - 如何使用 PHP 代码将 XML 结果转换为 JSON 数组或 PHP 数组
- java - Postman 中应使用 ',' 而不是 't'
- java - 无法显示jsp页面
- microservices - 在 AWS ECS 上使用 Netflix Conductor Orchestration