大虾救命!如何解决ORA-01401: inserted value too large for column

DAMAX 2004-09-16 03:58:26
我备份数据库后在其他的机器上再导入这个数据库,出现如下错误,并只能导
入部分数据。
IMP-00019: row rejected due to ORACLE error 1401
IMP-00003: ORACLE error 1401 encountered
ORA-01401: inserted value too large for column
我装的是ORACLE8.1.7,最后出现column 1 66790 的提示。
该怎么解决?
...全文
1492 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
enhydraboy 2004-09-17
  • 打赏
  • 举报
回复
更正,应该是exp从一个single byte字符集的数据库,而imp的是一个多字符集的数据库。
如WE8ISO8859P1 to UTF8,那么原来的varchar(2000)是一个字节1个字符,现在的varchar(2000)是多个字节一个字符,就是会导致不足。
因为UTF8包含英文字符集的,imp是不会报关于字符集不一致的错误的。
enhydraboy 2004-09-17
  • 打赏
  • 举报
回复
imp是会首先create table的。
我认为问题可能是字符集不同的关系。而且,你现在的数据库是一个采用英文字符集的数据库,导致varchar是single byte,显然是不能放下这么长的内容。
zealot_zk 2004-09-17
  • 打赏
  • 举报
回复
是可以的,但是如果原来的表中已经存在要导入的表,是无法成功导入的,只有现删除原先的表再导入才可以。

另外如bzszp(www.bzszp.533.net)所说,导入时是先创建表,然后才插入数据,应该不会出现这样的问题啊,学习ING
fireredfox 2004-09-17
  • 打赏
  • 举报
回复
导入的时候,是不是可以先把原来的table都drop掉,然后再导入阿
zhaokeke2004 2004-09-16
  • 打赏
  • 举报
回复
检查插入数据列和表中列的宽度
bzszp 2004-09-16
  • 打赏
  • 举报
回复
感觉有点奇怪
你是导入的dmp文件吧,导入时先创建表,然后导入数据的
怎么会这样呢?
DAMAX 2004-09-16
  • 打赏
  • 举报
回复
请问该怎么解决?
bzszp 2004-09-16
  • 打赏
  • 举报
回复
提示得很明确了
插入的值大于列的宽度。

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧