gpt4 book ai didi

mysqldump 输出不是有效的 Oracle "create table"格式

转载 作者:行者123 更新时间:2023-11-29 11:08:58 25 4
gpt4 key购买 nike

我正在尝试将数据从 MySQL 数据库 (5.6.32-78) 移动到 Oracle 数据库 (11g)。使用mysqldump,在oracle中创建表时,输出会导致“缺少右括号”错误。 IE...mysqldump 输出:

CREATE TABLE "table1" (
"ID" int(11) NOT NULL,
"column1" int(11) NOT NULL DEFAULT '0',
"column2" varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY ("ID")
);

Oracle 期望出现以下情况(NOT NULL 和 DEFAULT 的顺序交换):

CREATE TABLE "table1" (
"ID" int(11) NOT NULL,
"column1" int(11) DEFAULT '0' NOT NULL,
"column2" varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY ("ID")
);

我是否缺少纠正此问题的选项?我有几百张 table 要移动,并且不想通过编写程序来“重新发明轮子”以获得正确的输出。(--兼容=oracle 没有任何区别)。谢谢。道格

<小时/>

我会尝试让问题更具体。

我正在尝试将 MySQL 迁移到 Oracle 数据库,并尝试使用 mysqldump 和各种选项,但它不会生成 Oracle 可用的输出。我无法使用 Oracle 的 SQL Developer,因为它需要同时连接到 MySQL 数据库(互联网)和 Oracle 数据库(位于“禁止互联网访问”防火墙内)。有谁知道如何创建 Oracle 友好的 MySQL 数据库导出吗?

最佳答案

NOT NULLDEFAULT 的顺序只是您将面临的一个问题。 MySQL 和 Oracle 之间存在许多差异,无法使用 mysqldump 选项修复。

http://dev.mysql.com/doc/refman/5.7/en/mysqldump.html#option_mysqldump_compatible说:

This option does not guarantee compatibility with other servers. It only enables those SQL mode values that are currently available for making dump output more compatible. For example, --compatible=oracle does not map data types to Oracle types or use Oracle comment syntax.

因此,在将转储文件导入 Oracle 之前,您必须对其进行一些手动编辑。

您最好使用 Oracle SQL Developer 将 MySQL 数据库迁移到 Oracle。您可以在此处找到带有视频的分步指南:http://www.oracle.com/technetwork/database/migration/index.html

请注意,通过单击其他商业 RDBMS 产品列表下方的链接“和其他...”可以找到 MySQL 的步骤。这是直接链接:http://www.oracle.com/technetwork/database/migration/mysql-093223.html

关于mysqldump 输出不是有效的 Oracle "create table"格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com