oracle imp 错误604,IMP-00058: 遇到 ORACLE 错误 1461
IMP-00058: 遇到 ORACLE 错误 1461
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
问题描述:
------------------------------------------
1、出版社使用的数据库为Oracle v11.2.0.3.0
2、导入数据前,将数据库同名表及数据删除
3、通过SQL命令:“ IMP 用户名/密码@服务器名 file=dmp文件路径 indexes=n grants=n constraints=n statistics=none fromuser=data_user touser=用户名 tables=(导入表名) ” 导入数据(导入用户的默认表空间足够大)
4、执行中发生错误:
“连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
经由常规路径由 EXPORT:V11.01.00 创建的导出文件
警告: 这些对象由 DATA_USER 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
. 正在将 DATA_USER 的对象导入到 SPT
. . 正在导入表 "GG_WJ_JSBG"
IMP-00058: 遇到 ORACLE 错误 1461
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
IMP-00028: 上一个表的部分导入已回退: 回退 873250 行
成功终止导入, 但出现警告。
------------------------------------------
事情经过:
在电子审批库上使用exp命令导出了几张表
exp DATA_USER/fl5q9at7 file=/arch_p/chubanshe_20141211.dmp log=/oracle/chubanshe_20141211.log tables=gg_wj_jsbg,ss_scgz_dbwjyyb,gg_wj_xgzlwx,gg_wj_xgfzlwx
出版社拿到dmp文件后导入时报以上问题描述(邮件内容)中的错误。
源库字符集:
通过SQL> select * from nls_database_parameters; 得到字符集为 ZHS16GBK
目的字符集:AL32UTF8
SQL> desc data_user.gg_wj_jsbg;
Name Type Nullable Default Comments
------------ -------------- -------- ------- ----------------------------------------------------------------------------------
RID NUMBER(38) 本字段无具体的业务意义,绝大部分表都增加本字段作主键,不使用有业务意义的字段作主键
SHENQINGH VARCHAR2(16)
WENJIANCFLJ VARCHAR2(256) Y
JIANSUOBH VARCHAR2(64) Y
JIANSUOFLH VARCHAR2(2048) Y
JIANSUOBDS VARCHAR2(4000) Y
JIANSUOBGLX VARCHAR2(16) Y 0 首次检索1 补充检索
JIANSUOBGJL VARCHAR2(64) Y
XINGSHENR VARCHAR2(64) Y
JIANSUOY VARCHAR2(64) Y
SHENHER VARCHAR2(64) Y
JIANSUORQ CHAR(8) Y
JIANSUOBGFCR CHAR(8) Y
YOUXIAOBJ VARCHAR2(4) Y 0 有效1 无效
REGNAME VARCHAR2(64) Y
REGTIME NUMBER(38) Y
MODNAME VARCHAR2(64) Y
MODTIME NUMBER(38) Y
QUANLIYQXS VARCHAR2(1024) Y
SHUOMINGSYS VARCHAR2(1024) Y
BEIZHU VARCHAR2(1024) Y
SHENCHAYXM VARCHAR2(256) Y
SHENCHABM VARCHAR2(256) Y
IPCFLH VARCHAR2(2000) Y
SHUOMINGSYX VARCHAR2(1024) Y
SXITONGTSR VARCHAR2(14) Y
从源表结构上可以看到 JIANSUOBDS VARCHAR2(4000)。VARCHAR2最大长度是4000,超过4000将以long类型存储。 ZHS16GBK 每个汉字占2个字节,AL32UTF8每个汉字占3个字节。源表中长度为4000的字段
到目的库时长度超标了,会当做LONG类型,而这一列bonding的是VARCHAR2.所以报这个错。
解决方法:
使用expdp和impdp就没问题
1、目的库那边是个人自己的测试库,所以让他们重新建一个ZHS16GBK字符集的实例
2、查看源表长字段最长存了多少字节
SQL> select length(max(t.JIANSUOFLH)),length(max(t.JIANSUOBDS)),length(max(t.Ipcflh)),max(t.Ipcflh) from data_user.gg_wj_jsbg t;
LENGTH(MAX(T.JIANSUOFLH)) LENGTH(MAX(T.JIANSUOBDS)) LENGTH(MAX(T.IPCFLH)) MAX(T.IPCFLH)
------------------------- ------------------------- --------------------- --------------------------------------------------------------------------------
16 106 71 针对审查员在第一次审查意见通知书中提出的审查意见,申请人提交了意见陈述书以及经过
如果不行可以通过create table temp_gg_wj_jsbg as select * from gg_wj_jsbg.
然后 alter table temp_gg_wj_jsbg modify JIANSUOBDS VARCHAR2(400) ;----收缩一下长度
alter table temp_gg_wj_jsbg add constraint temp_gg_wj_jsbg_pk primary key (RID);
网上对原因的罗列:
-----------------------------------------------------------------------------------------
IMP-00058: 遇到 ORACLE 错误 1461
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
IMP-00028: 上一个表的部分导入已回退: 回退 36 行
可能有以下几种原因:
[1]插入到字符串长度大于4000字节。
[2]插入到表中的记录的某个字段数据的实际长度大于2000个字节(如果是UTF-8,则是1333个字节);或者是插入的记录中有两个或两个以上长度大于2000字节的字符串。
[3]数据库与客户端的JDBC驱动不匹配。
[4]服务器A和服务器B字符集不同等等。
oracle imp 错误604,IMP-00058: 遇到 ORACLE 错误 1461相关推荐
- imp-00003: 遇到 oracle 错误 604,imp ORA-00604: 递归错误
imp ora-00604 ora-06502错误 ptm-c1的是生产库,一直都是10.2.0.4 客户端是windows版10.2.0.1 pri-1是测试库,之前的版本是10.2.0.1,导出导 ...
- oracle imp 错误604,oracle imp 导入时报ORACLE 错误 604
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partition ...
- imp oracle错误3114,imp时发生错误ORA-01114
IMP-00003: ORACLE error 1114 encountered ORA-01114: IO error writing block to file %s (block # %s) 在 ...
- exp导oracle数据库,使用exp/imp 在oracle数据库间导数据
最近工作需要将oracle数据库的表数据导出到另一个oracle数据库表,找到了oracle 自带的命令行,并记录下导数据过程. 导数据过程分以下几步: 假设源数据库为A,目标数据库为B 1.在B上通 ...
- imp oracle reschema_Oracle EXP和IMP用法和介绍
正在看的ORACLE教程是:OracleEXP和IMP用法和介绍. 1.Export/Import的用处 Oracle Export/Import工具用于在数据库之间传递数据. Export从数据库 ...
- Oracle数据库导入导出 imp/exp备份还原
Oracle数据导入导出imp/exp Oracle数据导入导出imp/exp 在cmd的dos命令提示符下执行,而不是在sqlplus里面,但是格式一定要类似于: imp/exp 用户名/密码@se ...
- oracle 的exp是什么,oracle中exp和imp是什么,oracle中exp和imp有何区别 | 学步园
oracle中exp和imp是什么,oracle中exp和imp有何区别.exp和imp的输入都是名字和值对:exp parameter_name=value 或exp parameter_name= ...
- Oracle数据导入导出imp/exp?批处理文件
原文:http://ymy131931.iteye.com/blog/1114476 Oracle数据导入导出imp/exp?批处理文件 如何写批处理文件自动将数据导入oracle数据库 Oracle ...
- Oracle数据导入导出imp/exp
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然 ...
- 解密Oracle备份工具-exp/imp
解密Oracle备份工具-exp/imp 无论是运维工作者还是数据库管理员,数据的备份和还原是我们日常工作的重点,制定合理的备份策略,使用合适的备份工具是每个IT人必备的技能,今天就给大家介绍Orac ...
最新文章
- 乐山计算机学校3十3,学校传真
- Jquery中get函数
- stm32 标准库一些比较容易犯的错误
- Debug Multithread DLL 与 Debug Multithread
- 重磅发布 | 30+ 阿里巴巴云原生「顶流」,给你一堂《云原生技术实践公开课》
- 数字化在金融领域的应用与实践,从“我觉得”到“用户觉得”
- Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated, T-shirts + prizes!)
- 解构产品经理的技术思维
- MyBatis源码之:MapperMethod
- 高阶函数-语法糖-lambda(三分钟读懂)
- 自制XML解析器源码分析
- PHP 缓存 内存,PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP
- Web前端CSS颜色代码大全
- 什么是数据恢复工具,一款一键恢复软件
- 名将戚继光与北蒙之战
- 揭开docker的神秘面纱?镜像制作
- Android设置默认输入法
- linux内核版本指什么意思,Linux的内核版本是怎么回事
- 员工与客户之间就是一个微信
- php文本式留言,基于文本的留言簿_php
热门文章
- Kettle8.2输入组件之多文件合并
- testng执行参数_TestNG参数化测试
- 俄罗斯天才数学家佩雷尔曼拒领百万千禧年数学大奖
- Reeds-Shepp曲线学习笔记及相关思考
- 主谓宾定状补口诀及练习题
- android极光推送声音,解决极光推送后台接收到推送消息,无提示音不震动
- 【如何使用Google搜索引擎访问Youtobe】
- RGB 转换为 XYZ 和 LAB空间:convert between sRGB and CIEXYZ, 色域色彩相关
- 异步电机直接转矩(Asynchronous DTC)控制原理
- 头歌C++面向对象实训二