【问题标题】:SELECT INTO Oracle SQL table from MySQL table with SQL Developer使用 SQL Developer 从 MySQL 表中选择 Oracle SQL 表
【发布时间】:2018-10-25 10:27:45
【问题描述】:

准备好摆脱 MySQL 数据库并切换到 Oracle SQL。我正在使用 Oracle SQL Developer。需要从 MySQL 表中获取记录并在 SQL 中填充其对应的表。

我能够在 SQL Developer 中建立与 MySQL 数据库的数据库连接。我通过从表中执行一个简单的 SELECT * 来检查连接,以确保它返回了所有记录。

但是,新的Oracle SQL 表有很多变化——MySQL 表中的名称都有一个“tn”前缀,即tnStore、tnConfigDate 等。SQL 表去掉了这个前缀。这是问题 #1。

新表中还将有几个新列。该数据将在稍后从其他地方添加。并且数据不会和MySQL表的顺序相同。

如何在 SQL Developer 中编写 SELECT INTO 语句以使用 MySQL 表中的数据填充 SQL 表并关联相应的列,同时暂时将新字段留空?

【问题讨论】:

  • 我能够使用 SQL Developer 将 MySQL 表从 MySQL 服务器复制到 Oracle。这是我可以编写和使用的语句:INSERT INTO TINTER_MASTER (STORENBR, MODELNBR, SERIALNBR, ORIGINITDATE, LASTCONFIGDATE, LASTPURGEDATE, CLRNTSYSID, PCMODEL, PCSERIALNBR, PCMACID,PCINITDATE) SELECT TNSTORE, TNMODEL, TNSERIALNBR, TNORIGINITDATE, TNINITDATE, TNLASTNETWORKDATE, TNCLRNTSYS, TNPCMODEL, TNPCSERIALNBR, TNPCMACID, TNPCINITDATE FROM TINTERSX; 但是我可以编写该语句来执行从 MySQL 服务器到 Oracle 服务器上的表的 INSERT 吗?

标签: mysql sql oracle select


【解决方案1】:

考虑使用 SQL Developer 将现有的 MySQL 表直接迁移到 Oracle。然后使用 INSERT 作为 SELECT 将数据移动/重构到具有所需列定义的新表中。

可能会快得多,而且一旦有了“原始”数据,您就可以一遍又一遍地进行工作,直到得到恰到好处。

请注意,您也可以简单地拖放以将 MySQL 表从其连接移动到现有 Oracle 数据库连接以移动表(DDL、数据或两者)。

【讨论】:

  • 我确实将表从 MySQL 服务器复制到了 Oracle SQL 服务器。然后,我能够从一张桌子到另一张桌子进行 INSERT INTO。但是,在我们安排任务从较新的源加载 Oracle 表之前,MySQL 服务器确实每天都会更新。 INSERT INTO 语句是否可以在两个不同的数据库(从 MySQL 服务器到 Oracle)之间工作?
  • 仅当您配置了数据库网关时 - 这允许您在两个数据库之间构建 DB_LINK。您还可以授权金门自动复制更改
【解决方案2】:

这是一种编程方式,但不确定如何在单个查询中实现:

我希望我们需要在 oracle all_tab_columns 中使用数据字典表,而我不确定在 Mysql 中(类似的表)

  1. 通过去掉前缀“tn”从Mysql表中获取列名和 将列名与 SQL 表进行比较。 (可以使用光标)
  2. 如果为SELECT INTO 语句和空白匹配构建SQL 语句 对于可能处于循环中的新字段。
  3. 完成所有列后,执行该语句

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多