首页 > 解决方案 > 如何将一个表的列数据迁移为另一个表的列,这两个表都属于不同的数据库

问题描述

我正在构建一个 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")

标签: javasqloracle

解决方案


推荐阅读