expdp 报错:ora-22923 amount of data specified in streaming LOB write is 0

数据泵导入报错 ORA-31693 ORA-00604 ORA-00942 删除最小日志后,再导入使用数据泵导入数据就不会报错了。根据上个参考链接给出的办法执行sql报错。 阅读详情

一客户让我看下一个expdp的导出错误,信息如下(表名已处理):

ora-31693 :table data object xx.xxxx failed to load/unload and is being skipped  due to error;

ora-29913 :error in executing ODCIEXTTABLEPOPULATE callout

ora-22923 :amount of data specified in streaming LOB write is 0


用oerr ora 22923 在操作系统上看了下oracle给的建议:

Cause: Trying to write LOB value via the streaming mechanism (i.e. unlimited write) but the input amount of data to stream was specified as 0. Thus, the user is trying to write 0 bytes to the LOB value.
Action: Write more than 0 bytes to the LOB value.

意思是不能朝lob字段里面写入零字节,该表上有个long raw类型的字段,这个已经被oracle淘汰的字段总是让人烦恼。

现在我怀疑该字段中可能存在空值的情况,但long raw字段又不支持谓词where的查询,所以无法定位到哪条记录存在空值。。。(也许这个可以作为切入点,来定位是否是空值,然而进一步删除该空值的情况)

在metalink上找了半天,也没有找到符合错误描述的文档,有点无奈。更多看到的都是建议将long换成lob型,但客户这边的这套系统是基于8i开发的,历史遗留问题总是难以解决的。

现在客户想要清理这张带有long raw字段表的部分数据,数据量很大,想利用expdp/impdp的方式来做,但总是报出如上错误,我这边又找不到好的方法,也不能确认是不是某个未公开的bug,只好像metalink所说的那样,建议选用exp/imp的方式来做了。客户勉强能接受,但对速度方面,还是有很多顾虑 。


倒是头一次遇到这样的情况,情绪有点低落啊,毕竟问题没有圆满解决。客户这边又因为牵一发而动全身的缘故,不能改动表结构。

我再找找看,以期获得某意外之喜,或某些灵感。


------------------------------------------------------------------------2015-03-31  续,问题不解决,寝食难安啊-------------------------------------------------------------------------

之前一直陷入了如何解决这个ora问题的思路陷阱里面,突然意识的,我完全可以跳过该ora错误,既然oracle expdp不支持0字节的lob导出,那么我就找出那条0字节的数据,在metalink上找了查找long raw字段大小的方法,贴在下面:


create or replace function lr_length( p_rowid in rowid ) return 
number 
as 
l_raw long raw; 
begin 
select name into l_raw 
from expdptest 
where rowid = p_rowid; 
if ( l_raw is null ) then 
return null; 
else 
return utl_raw.length(l_raw); 
end if; 
exception 
when others then return NULL; 
end;
/


select rowid, lr_length( rowid ) len from expdptest ;


后来执行结果验证了我先前的猜测,果然存在一条long raw类型字段值为null的情况,和业务商量,建议在expdp的时候跳过该值,expdp导出成功。

EXPDP导出时遇到 ORA-39126发生意外致命错误 ORA-22922不存在的LOB值 在服务器用expdp导出数据量较大的用户时,出现ORA-39126和ORA-22922错误(数据库版本为11g),错误截图如下: 上网查了很多,记录总结一下,以后使用: 原因一: 1.在用oracle exp命令导出数据时,出现ORA-22922: 不存在的 LOB 值,原因经查找为:含有CLOB字段的表中,clob数据类型的字段值为,故出现此错误, 解决办法为将这些数据删除掉在导出即可。 解决方法: 查询所有含CLOB字段的表,查看是否有字段 select user_col_comments.TABL 阅读详情

相关推荐

3D Slicer:从入门到精通(二)——入门指南

本篇文章包含开始使用3D Slicer所需的信息,包括如何安装和快速开始使用基本功能,以及在哪里找到更多信息。

walt3433的博客 2万+

ora-22923解决方法

ora-22923:在流动的LOB写入中指定的数据数量为0,如下图: 经查询,导入的字段为clob类型,但是存在空值,故导入失败,可以写一个case when语句,如下: case when DBMS_LOB.GETLENGTH(text) = 0 then to_clob('无') else text else end as code 注:DBMS_LOB.GETLENGTH(text) = 0 判断text字段是否为空。 clo...

weixin_43817845的博客 1083

【5G演进】4G到5G演进之网络架构与协议栈

4G到5G演进之网络架构与协议栈

Learning makes me happy (0^◇^0) 5529

Oracle报错ORA-19400 ORA-24279产生原因和MOS官方解决办法

ORA-19500设备的块大小的字符串是无效的 原因:通过连续的I / O OSD返回设备的块大小是无效的。 行动:如果块大小设置使用恢复管理器分配通道命令parms选项,然后指定块大小必须改变。parms选项,如果没有对ALLOCATE CHANNEL命令指定的,那么这是一个内部错误,应当报甲骨文。 ORA-19501读取文件“错误字符串 “,blockno 字符串(BLOCKSIZE =...

qq_41023925的博客 4598

TI IWR 6843 ISK 毫米波雷达开箱测试

TI IWR6843 ISK毫米波雷达上手体验,教程十分详细,对于新手很友好。

qq_57061492的博客 4033

Cadence OrCAD: 层次化设计 Hierarchical Design

详细介绍OrCAD的原理图层次化设计方法。

Fantasy237的博客 1万+

ORA-29538、ORA-29532、ORA-29913问题解决

问题一: ERROR at line 1: ORA-29538: Java not installed 解决方法 1.检查有没有安装JAVA组件 select * from v$option t where t.PARAMETER='Java'; 如果返回行说明已安装,如果没有返回行,运行Oracle Universal Installer安装JAVA组件 2.如果在第1步返回...

weixin_33893473的博客 535

智能气象站:ESP32驱动的心知天气数据可视化实践

本文详细介绍了基于ESP32微控制器和心知天气API构建智能气象站的完整实践。通过Arduino开发环境,实现天气数据的获取、JSON解析与OLED屏可视化展示,涵盖硬件连接、API配置、低功耗优化及部署问题排查,为物联网开发者提供实用指南。

jump7的博客 210

关于OracleLob写入的问题

今天在写二进制流到数据库的过程中,遇到“无效操作,链接未关闭!”的错误。 后来发现,主要原因是用于插入二进制流的数据库字段查询时为空,解决办法是给该字段设一个初始值“Empty_Blob()"。

crury的专栏 577

通信原理 | 通俗理解 | 因子图、消息传递以及它们之间的关系

在算法迭代过程中,通过反复更新这些消息,直到收敛,最终可以得到每个变量的边缘概率分布或最有可能的整体状态。算法通过因子图中的节点反复交换消息,直到找到最优解或所有消息稳定下来,从而解决了比如聚会日期这样的优化问题。在实际应用中,这种方法可以用来解决更复杂的问题,比如图像识别、语音识别和机器学习中的其他问题。,特别是在处理概率模型和执行概率推断时,因子图提供了一个强大的工具。(比如朋友的空闲时间和地点的可用性),并且你希望尽可能让所有人满意。在真正的因子图和消息传递算法中,这个过程被数学化和形式化。

若北辰 1192

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目)

XiaoqiangClub的博客 5161

诊断:expdp导出时遇到错误ORA-31693和ORA-00922

11.2.0.1使用数据泵expdp导出时,如果使用parallel,可能会遇到 ORA-31693: Table data object "OWNER"."TABLE" failed to load/unload and is being skipped due to error: ORA-00922: missing or invalid option 不适用pa...

719

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

python-ipopt是一种基于Python语言的求解非线性最优化问题的软件包。它使用了Interior Point Optimizer(IPOPT)算法来求解最优化问题。这段代码使用python-ipopt求解了一个无约束的非线性最小化问题,其目标函数为(x[0] - 1) ** 2 + (x[1] - 2) ** 2,求解结果为x_opt。求解线性规划问题、二次规划问题、二次范数最小化问题等类型的最优化问题。对于给定的最优化问题,可以设置不同的求解参数来控制求解的精度和效率。

源代码杀手的博客 2144

ORA-31693:Table data object xxx failed to load

[oracle@ijx ~]$ less /u01/ora_backup/expdp_201411200126.log ... Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE ORA-31693: Table data object "IJX"."T_WEEKLOG_APP_DETAIL" failed to load/unload

一醉轻王侯的技术博客 8091

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

how to solve ORA-02293

这个错误发生在今天早上要增加一个表的检查约束的时候,具体报错表现为: ORA-02293: 无法验证 (STORE.CHECK_STU_ID) - 违反检查约束条件 这是因为已经存在于表中的数据违反了即将要创建的检查约束的条件。 解决办法是创建约束的时候增加novalidate子句,这样就不会对已经存在的数据进行检查了,让我们能够顺利的进行约束的创建,创建后的约束只会对之后添加的数据进

Gtlions Tracker 3294

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数据泵ORA-39126 ORA-01555 ORA-22924 ORA-06512 ORA-06512

当前版本11.2.0.4 RAC,psu补丁达到19年1月。impdp+dblink导入遇到如下报错: ORA-39126: Worker unexpected fatal error in KUPW$WORKER.MOVE_DATA [TABLE_DATA:"EPM_SC"."ARC_R_DATA":"AOTHER"."AOTHER_1707"] SELECT flags, NVL(targ...

liuzhilong的博客 3179

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

expdp with error: ORA-39125

When I use expdp to export a schema, it throws ORA-39125: >expd...

cnwoljq67940954的博客 407

数据泵expdp导出遇到ORA-01555和ORA-22924问题的分析和处理

使用数据泵导出数据库数据时,发现如下错误提示: ORA-31693:Tabledataobject"CAMS_CORE"."BP_EXCEPTION_LOG"failedtol...

cizhanliang7973的博客 785

oracle exp ora文件,Oracle exp导出时出现ORA-01555和ORA-22924的解决

Oracle exp导出带有LOB字段表时出现ORA-01555和ORA-22924报错,给出解决方法。[@more@]1、问题描述环境为aix5.3系统,oracle9.2.0.1的库,库内rhxt用户有一rk_zp表,这张表zp字段是blob型的,这张表43GB,每次exp至几个G时就报ORA-01555和ORA-22924错了。2、问题解决通过实际的测试及查MOS,发现这是因为blob某些行...

weixin_30759083的博客 614

ORA-39126 KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS]错误

--======================================================= -- ORA-39126 KUPW$WORKER.PUT_DDLS [TABLE_STATISTICS]错误 --======================================================= 在Oracle11g中使用impdp导...

anjichan4261的博客 536

zt_ora-600内部错误的类型

http://www.ningoo.net/html/2009/ora-600_internal_error_categories.html ...

171

踩坑日记——Oracle 错误:ORA-22922 不存在的 LOB 值

今天在系统中测试导出报表的时候,根据人名、工号、单据号、项目等条件分别导出都没有出现问题,唯独无条件导出时报以下错误: Oracle 错误:ORA-22922 不存在的 LOB 值 根据报错信息进行排查,发现是这句SQL出现了问题 to_char(wm_concat(distinct('字段名'))) as字段名 直接无条件查询会报错,加上where 1=1 order by ***可以通过,但是这样又会导致查询条件置于这句order by之后导致报错ORA-0...

V_S1r的博客 4151
上一篇: SYSAUX表空间中WRI$_OPTSTAT_HISTGRM_HISTORY等历史统计信息表较大问题
下一篇: plsql developer 使用sys用户登录,报ORA-01031权限不足
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值