Database 从.sql和.unl文件导入Oracle是Informix dbexport的结果

Database 从.sql和.unl文件导入Oracle是Informix dbexport的结果,database,oracle,migration,informix,Database,Oracle,Migration,Informix,我从Informix数据库导出了一个dbexport,我有.sql和.unl文件。 我可以从文件中将导出的数据库重新创建到Oracle中吗 如果不可能,是否有RDBMS可以做到这一点?正如Jonathan在评论中所写,这并不容易。Informix dbexport创建的文件不能直接由其他数据库使用。虽然这很容易读取文本信息,但您可以编写程序,将.sql和.uml文件转换为可用于首选数据库的文件。如果使用存储过程,那么这真的很难 对于CREATE table…中的表定义,必须将DATETIME Y

我从Informix数据库导出了一个dbexport,我有
.sql
.unl
文件。 我可以从文件中将导出的数据库重新创建到Oracle中吗


如果不可能,是否有RDBMS可以做到这一点?

正如Jonathan在评论中所写,这并不容易。Informix dbexport创建的文件不能直接由其他数据库使用。虽然这很容易读取文本信息,但您可以编写程序,将
.sql
.uml
文件转换为可用于首选数据库的文件。如果使用存储过程,那么这真的很难

对于
CREATE table…
中的表定义,必须将
DATETIME YEAR to DAY
等Informix类型转换为
DATE
,或
SERIAL
转换为
INTEGER
。Oracle没有序列类型,因此您必须为这些列创建序列和触发器


转换db模式时,可以从
.unl
文件导入数据。我建议您编写自己的程序,将其读取为CSV数据,使用
INSERT
进行PrepareStatement并转换一些数据。还请记住Oracle不使用空字符串:

正如Jonathan在评论中所写,这并不容易。Informix dbexport创建的文件不能直接由其他数据库使用。虽然这很容易读取文本信息,但您可以编写程序,将
.sql
.uml
文件转换为可用于首选数据库的文件。如果使用存储过程,那么这真的很难

对于
CREATE table…
中的表定义,必须将
DATETIME YEAR to DAY
等Informix类型转换为
DATE
,或
SERIAL
转换为
INTEGER
。Oracle没有序列类型,因此您必须为这些列创建序列和触发器


转换db模式时,可以从
.unl
文件导入数据。我建议您编写自己的程序,将其读取为CSV数据,使用
INSERT
进行PrepareStatement并转换一些数据。还要记住,Oracle不使用空字符串:

我不知道Oracle提供了什么功能,但很可能有现成的解决方案来导入此类数据。但是,您面临的问题包括:(1)数据格式-管道分隔字段可能不是Oracle中的默认字段;(2) 数据类型-您可能在Informix中使用类型,而在Oracle中没有很好的相似性;(3) SQL语法-您可能正在使用Oracle不支持的Informix功能;(4) 存储过程-Informix SPL(存储过程语言)与Oracle非常不同,因此传输存储过程可能很棘手。您需要查看
.sql
文件和
.unl
文件(主要是
.sql
文件)我不知道Oracle提供了什么设施,但很可能有现成的解决方案来导入这些数据。但是,您面临的问题包括:(1)数据格式-管道分隔字段可能不是Oracle中的默认字段;(2) 数据类型-您可能在Informix中使用类型,而在Oracle中没有很好的相似性;(3) SQL语法-您可能正在使用Oracle不支持的Informix功能;(4) 存储过程-Informix SPL(存储过程语言)与Oracle非常不同,因此传输存储过程可能很棘手。您需要查看
.sql
文件和
.unl
文件(主要是
.sql
文件)很幸运,我没有任何存储过程,只有数据库基定义和数据。为了解决Jonathan指出的数据类型问题,我认为在sql文件中为Oracle中的corrects替换这些类型将是一个解决方案。幸运的是,我没有任何存储过程,只有数据库基定义和数据。为了解决Jonathan指出的数据类型问题,我认为在sql文件中为Oracle中的corrects替换这些类型将是一个解决方案。