×

不是有效的导出文件头部验证失败

不是有效的导出文件头部验证失败(不是有效的导出文件 头部验证失败)

admin admin 发表于2023-04-03 21:07:10 浏览50 评论0

抢沙发发表评论

本文目录一览:

用exp从oracle中导出的文件,在另一个数据库导入时报错:

头部验证失败是由于版本号不同所致,经试验可以通过如下方法进行修改:用notepad++工具打开dmp文件,可以看到头部信息

--TEXPORT:V11.01.00,即为源数据库的版本号,将其修改为目的数据库的版本号,如本机的版本号为10.02.01,再次进行导入操作尝试。

导入不成功也有可能是因为数据库用户不对造成的。

发票数据导出显示不是一个有效的文件

电脑显示不是一个有效文件原因和解决方法第一,可能是兼容问题引起。解决方法:找到无法打开的文件,右键点击,在下杠菜单中选择属性,在弹出来的窗口中,将界面切换到兼容性这一栏,然后勾选以兼容模式运行,单击确定即可。第二,因为文件关联错误导致。解决方法:有可能是病毒在作祟,运行杀毒软件进行全盘杀毒,确保电脑中没有病毒的隐患。第三,文件本身不完整。解决方法可以试着重新下载安装文件来解决问题。-不是有效的导出文件头部验证失败

oracle计算四分位改成mysql

1.首先我们确定oracle数据库中的数据库可用,我们打开navicat,依次点击连接-oracle,连接名可以自己随便定义

2.连接成功之后,我们的navicat就会出现这个标志,

3.接下来我们就要开始数据库之间的转换,首先我们在mysql新建一个数据库,由于之前我已经转换过一次,在此就不纠结数据库名了,字符集选择utf8mb4.

utf8和utf8mb4的区别:

??MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思, 专门用来兼容四字节的unicode。

好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

??那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等。-不是有效的导出文件头部验证失败

4.创建完数据库之后,我们需要将Oracle中的表转到mysql,依次点击工具-数据传输,源数据就选择Oracle数据库中需要转换的数据库,目标数据库就选择我们新建的数据库,点击选项,在遇到错误时继续打勾,点下一步-不是有效的导出文件头部验证失败

5.选择我们需要转储的数据,本次转换只转换表结构,视图的转换稍微有些麻烦,因为mysql视图不支持子查询。点击开始

6.接下来我们需要看数据的转换过程中发现了哪些错误,我们要将这些错误记录下来,可能由于某些元素会导致某些表转换不成功,这时就需要我们在转换完成后自己手动去创建这些表。

7.由于数据库中的大小原因会导致转换的时间长度,在转换完成后,可以看到上面报了多少错误,然后我们复制日志文件,打开notepad++,将日志复制进去,查找 [ERR],通常的提示都是这种,我们需要记录下该表,-不是有效的导出文件头部验证失败

8.由于完整的转换时间比较长,通常在转换完成后复制整个日志文件,查找[ERR]就可以看到转换中出现的错误,可能会出现重复的表名,重复的我们只需要记住一个即可。我们需要记住的是报错语句的上一条记录的表名,我们记下来这写问题表,等下来处理。-不是有效的导出文件头部验证失败

9.在数据转换完成后,会有一些问题,就是在转换的过程中,oracle中的integer类型会在mysql中转换成decimal类型,date类型也会出现一些问题,就会出现下面这种情况,这时就需要我们将这些字段更改-不是有效的导出文件头部验证失败

10.我们对转换好的mysql数据库点击右键-转储sql文件-仅结构

11.转储完成后打用notepad++打开sql文件,将decimal(x,x)全部替换为int,如果有datetime类型的,将datetime(0)转换成datetime

12.保存之后我们再新建一个数据库,和刚才一样,选择我们刚创建的数据库,右键,运行sql文件,选择我们改过的sql文件

13.运行成功后,目前,我们jaranmes3中的数据是对的,jranmes4中的表结构是对,所以我们需要将此同步一下,这里我们选择将jranmes4中的结构同步到jranmes3,选择工具-结构同步,选择好后点击比对,确定没什么问题选择部署,运行-不是有效的导出文件头部验证失败

14.更改完表的结构,我们需要对刚才转换中出现错误的表进行重新创建,我们根据记录的表明,在PL/SQL中搜索表名,右键点击查看-查看sql

??在更改时,我们不需要关心表空间,只需要在创建表的时候添加上主键,创建索引就可以了。

??比如上面的sql,在mysql中,我们需要写成

-- Create table

create table UTILS_OBJ_ASSOCHECK

(

masterobj VARCHAR2(64) not null,

slaveobj VARCHAR2(64) not null,

keyattrsrel VARCHAR2(256) not null,

primary key (KEYATTRSREL, SLAVEOBJ, MASTEROBJ)

)

有的表可能包含的有索引,类似下面这样的语句.

??在mysql中不能使用这种方法来添加索引,上图中我们添加的是普通索引,我们需要查找对应的sql语句,我们应该使用下面的方式来添加索引

ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

所以,上面的语句我们可以写成

ALTER TABLE BIZ_REPORT_BOX_BATCH_ASSO ADD INDEX BIZ_REPORT_BOX_BATCH_ASSO (BATCHNO, BOXNO)

有时候PLSQL中添加的是唯一索引,我们需要使用mysql添加唯一索引方式的语句,以下面的格式

ALTER TABLE `table_name` ADD UNIQUE ( `column` )

??需要注意的是:mysql中没有varchar2类型,且有时varchar2(255)会导致长度太长无法完成建表,所以我们在PL/SQL复制完建表语句后,还需要我们去更改建表语句,比如将varchar2改成varchar,将number改为int。-不是有效的导出文件头部验证失败

15.根据上面的步骤,将我们转换中遇到问题的表全部重新更新一下就可以了

oracle导入dmp 说不是有效的导出文件,头部验证失败是什么意思

IMP-00010: 不是有效的导出文件,标题验证失败

IMP-00000: 未成功终止导入

大概有两种情况:

1.imp/exp的版本不对,也就是说低版本的导出,可以用高版本的导入,但高版本导出不能用低版本的导入,这个版本不只是指imp/exp的版本,也是指数据库的版本

2.可能在用ftp download时未设置binary的传输方式,导致文件损坏

用UltraEdit-32打开dmp文件可看到版本信息,dmp文件的信息如下:

XPORT:V10.02.01

从中可以看出其版本是10.02.01

----------------------------------------------------------------------

exp/imp用法

exp/imp适合于同类型数据库之间数据转换

共有四种不同模式:表,用户,表空间,数据库

现分别举例说明

1.表级别

$ exp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp

$ imp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp

2.用户级别

$ exp "'sys/sys as sysdba'" owner=hr direct=y file=/data/owner_hr.dmp

$ imp "'sys/sys as sysdba'" fromuser=hr touser=hr file=/data/owner_hr.dmp

3.表空间级别

$ exp "'sys/sys as sysdba'" transport_tablespace=y direct=y tablespaces=examples file=/data/ts_examples.dmp-不是有效的导出文件头部验证失败

4.数据库级别

$ exp "'sys/sys as sysdba'" full=y file=/data/db.dmp

说明:如要使用as sysdba或as sysoper进行操作,则必须使

用如下用法:

"'sys/sys as sysdba'"

"'system/system as sysoper'"