【问题标题】:Copying the data from one table to other table in oracle database using Java使用Java将数据从一个表复制到oracle数据库中的另一个表
【发布时间】:2021-03-24 12:11:39
【问题描述】:

我是 Java 新手,并且

我有一个表名 TABLE1,其列名是 NAME、ROLL。

CREATE TABLE TABLE1(NAME VARCHAR2(4), ROLL NUMBER(3));

INSERT INTO TABLE1 VALUES ('SAMY', 101);
INSERT INTO TABLE1 VALUES ('TAMY', 102);
INSERT INTO TABLE1 VALUES ('JAMY', 103);
INSERT INTO TABLE1 VALUES ('RAMY', 104);

我有另一个表名 TABLE2,其列名为 NAME、ROLL。

CREATE TABLE TABLE1(NAME VARCHAR2(4), ROLL NUMBER(3));

我们需要编写一个Java程序,在oracle中将数据从TABLE 1迁移到TABLE2,并在控制台打印结果。

我正在使用 Oracle SQL 开发人员。 我写了一个Java程序,但不确定它是否准确。

    java.lang.Class;
    java.sql.Connection;
    java.sql.DriverManager;
    java.sql.ResultSet;
    java.sql.Statement;

    public class JDBCDemoConnection
    {
       public static void main(String[] args)
       {
          try
             {
                Class.forName("oracle.jdbc.driver.OracleDriver");
                Connection connection = null;
                connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "username", "password");
                Statement smt = connection.createStatement();
                String sql = "INSERT INTO TABLE2 (NAME,ROLL)" + "SELECT NAME, ROLL FROM TABLE1";
                
                int i = smt.executeUpdate(sql);
                System.out.println(i+ " row is inserted into the table");

                connection.close();

             }
            catch(Exception E)
             {
               System.out.println(E);
             }
       }
    }

【问题讨论】:

  • 为什么需要为此编写程序?可以直接在数据库中执行插入语句
  • 我是 IntelliJ 的新手,我想编写一个 Java 程序,我需要在 IntelliJ 的控制台中获取/打印结果
  • 您的问题是什么?如果你想知道它是否准确,你应该先运行它。
  • 它显示错误并且无法找到错误..有什么代码,我需要更新或包含...我研究了很长时间,但无法找出错误在我第一次编写这个程序时更正
  • 您遇到什么错误?

标签: java oracle jdbc


【解决方案1】:

问题在于您使用的 SQL 查询。连接后,查询看起来像INSERT INTO TABLE2 (NAME,ROLL) SELECT NAME, ROLL FROM TABLE1,它不是有效的 SQL 语句。

只需使用SELECT INTO 语句将数据从一个表复制到一个新表中。

Statement smt = connection.createStatement();
String sql = "SELECT NAME, ROLL INTO TABLE2 FROM TABLE1";
boolean result = smt.execute(sql);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2023-04-09
    • 2021-09-26
    相关资源
    最近更新 更多