代码之家  ›  专栏  ›  技术社区  ›  nico1510

在oracle数据库中插入多个值

  •  1
  • nico1510  · 技术社区  · 11 年前

    我的oracle数据库有大约700 MB的插入语句,但这些语句是用来在MySQL数据库中插入数据的。因此,语法为

        INSERT INTO TABLE 
            (EXCH_WH_KEY, EXCH_EFF_DATE) 
            VALUES
        (1, '28-AUG-2008'),
        (2, '28-AUG-2008'),
        (3, '28-AUG-2008');
    

    等等。但由于这是大约700 MB的语句,我无法更新它们的所有语法。将数据导入我的oracle数据库的最快方法是什么?

    2 回复  |  直到 11 年前
        1
  •  0
  •   Gareth Bowen    11 年前

    将数据插入MySQL数据库,然后使用 mysqldump --compatible=oracle 标志以将其导出为Oracle兼容的格式。然后按照正常方式插入Oracle数据库。

    如果这不起作用(如下面的注释所示),您可以使用字符串串联从MySQL数据库中读取并生成与Oracle兼容的插入语句,例如:

    SELECT CONCAT('INSERT INTO mytable(EXCH_WH_KEY, EXCH_EFF_DATE) VALUES (', EXCH_WH_KEY, ', \'', EXCH_EFF_DATE, '\')') FROM mytable;
    

    请注意,字符串列必须用转义引号括起来。

        2
  •  0
  •   roneo    9 年前

    执行过程中 mysqldump 添加 --extended-insert=FALSE 随着 --compatible=oracle 进行单独的插入语句,而不是一个完整的插入语句。