已解决:ORA-00932:数据类型不一致:应为-,但却获得CLOB
1.问题原因
Oracle的sql中的使用函数返回的值的字段没有对应的类型,只是一段文本。所以在使用该字段关联的时候就会报错。
2.解决办法
使用to_char()方法将文本转成字符串类型即可。
示例
原sql:就是将selectfk中的多个值根据特地符号分割成多条记录,并与其他表关联查询其他信息。但是运行的时候就会出现该错误。ORA-00932:数据类型不一致:应为-,但却获得CLOB。因为REGEXP_SUBSTR()函数返回的是一段文本并不是字符串,所以关联的时候会取不到类型报错。所以使用to_char()将文本转成字符串。
SELECTzjb2.id as id,zjb2.perinfofk as perinfofk,perinfo.name as name,perinfo.code as code,perinfo.cardnum as cardnum,xingbie.name as sexname,bumen1.name as mgroufkname,bumen2.name as newoufkname,to_char(zjb2.txdate,'yyyy-MM-dd') as txdate
FROM (SELECTzjb1.id as id,REGEXP_SUBSTR(zjb1.selectfk, '[^,]+', 1 ,rownum) as perinfofk,zjb1.oldoufk as oldoufk,zjb1.newoufk as newoufk,zjb1.txdate as txdate
FROM
(SELECT zjb.id,zjb.oldoufk,zjb.newoufk,zjb.selectfk,nvl(zjb.ddsj,zjb.txdate) as txdateFROM table0 zjb
) zjb1
connect by rownum <= regexp_count(zjb1.selectfk, ',') + 1) zjb2
left join yonghu.perinfo perinfo on perinfo.id = zjb2.perinfofk
left join base.zidian xingbie on xingbie.id = perinfo.sexid
left join base.bumen bumen1 on bumen1.id = zjb2.oldoufk
left join base.bumen bumen2 on bumen2.id = zjb2.newoufk
使用to_char()转换文本类型,使得可以用于关联字段。同时发现,因为rownum伪列的原因会出现重复行,所以在查询的时候使用distinct过滤。
完整sql如下
SELECTzjb2.id as id,zjb2.perinfofk as perinfofk,perinfo.name as name,perinfo.code as code,perinfo.cardnum as cardnum,xingbie.name as sexname,bumen1.name as mgroufkname,bumen2.name as newoufkname,to_char(zjb2.txdate,'yyyy-MM-dd') as txdate
FROM (SELECT DISTINCTzjb1.id as id,TO_CHAR(REGEXP_SUBSTR(zjb1.selectfk, '[^,]+', 1 ,rownum)) as perinfofk,zjb1.oldoufk as oldoufk,zjb1.newoufk as newoufk,zjb1.txdate as txdate
FROM
(SELECT zjb.id,zjb.oldoufk,zjb.newoufk,zjb.selectfk,nvl(zjb.ddsj,zjb.txdate) as txdateFROM table0 zjb
) zjb1
connect by rownum <= regexp_count(zjb1.selectfk, ',') + 1) zjb2
left join yonghu.perinfo perinfo on perinfo.id = zjb2.perinfofk
left join base.zidian xingbie on xingbie.id = perinfo.sexid
left join base.bumen bumen1 on bumen1.id = zjb2.oldoufk
left join base.bumen bumen2 on bumen2.id = zjb2.newoufk
已解决:ORA-00932:数据类型不一致:应为-,但却获得CLOB相关推荐
- oracle创建视图类型为日期,oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB...
在oracle中创建视图的时候,语句中包含有clob类型的字段.视图创建语句大概如下: CREATE OR REPLACE FORCE VIEW "T_PROJECTS" (&qu ...
- 没有CLOB类型却报ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
这个主要是在Oracle查询中用到了wm_concat()函数{进行对同一列取到多行数据合并到一行并用英文逗号","分开} 刚开始猜测在不同版本中导致这条数据返回值不一样产生的问题 ...
- 编译错误 错误:PL/SQL: ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 NUMBER 行
文章目录 1. 现象 2. 分析 3. 解决方案 通过存储过程将临时B表中的数据同步到轨迹表中 1. 现象 PROCEDURE LABS.ASSET_LOANP 编译错误错误:PL/SQL: ORA- ...
- 【Vegas原创】exp时,ORA-00932: 数据类型不一致解决方法
现象: EXP-00056: 遇到 ORACLE 错误 932 ORA-00932: 数据类型不一致: 应为 BLOB, CLOB, 但却获得 CHAR EXP-00000: 导出终止失败 解决方法: ...
- mysql自增主键和mybatis自增主键不一致问题(已解决):
mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"><sel ...
- 已解决pandas创建DataFrame对象失败
已解决(pandas创建DataFrame对象失败)ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2) 文 ...
- 已解决ValueError: 4 columns passed, passed data had 2 columns
已解决(pandas创建DataFrame对象失败)ValueError: 4 columns passed, passed data had 2 columns 文章目录 报错代码 报错翻译 报错原 ...
- ODI Studio(问题7)ORA-00932:数据类型不一致--BLOB
问题:数据类型不一致:应为-,但却获得BLOB. 措施: 1.在流中,设置源表的加载模块为:LKM SQL to SQL BLOB(JYTHON). 2.设置目标表的集成模块为:IKM SQL Inc ...
- 已解决ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2)
已解决(pandas创建DataFrame对象失败)ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2) 文 ...
- Access中出现改变字段“自己主动编号”类型,不能再改回来!(已解决)
Access中出现改变字段"自己主动编号"类型,不能再改回来! (已解决) 一次把access中的自增字段改成了数值,再改回自增时,提示:在表中输入了数据之后,则不能将不论什么字段 ...
最新文章
- 迅捷路由连接服务器未响应,迅捷路由器通过falogin.cn登录不了管理界面的解决办法...
- ubuntu服务器php7.2启用mysqli(不用reboot超简单)
- 10种CSS3实现的Loading效果
- position的四种属性
- 嵩天-Python语言程序设计程序题--第九周:Python计算生态纵览
- Echart折线图 柱状图
- windows内核情景分析---进程线程2
- 质疑“扩版=质量下降”——以《中国农学通报》和《安徽农业科学》为例
- 01.自定义View(ArcView弧形进度条)
- 小熊错误_《三只小熊闯祸了》:想要孩子勇于承认错误,怎么跟TA聊?
- android记账本的技术路线,Android — 个人简洁记账本项目开发日志
- 【数据结构】顺序表实现超详解(保姆级教程)
- 1.Spring入门
- 一旅客列车在广西柳城县脱轨 4人死亡50余人受伤
- Diebold-Mariano检验
- 简述RC低通滤波原理
- platform设备驱动简介
- 以地图视角回顾70年互联网发展
- ios 调整麦克风音量_ios 调整麦克风音量_如何在ios 7中获得麦克风音量?
- HQChart使用教程89-最后一根k线倒计时功能
热门文章
- java 微信主动推送消息_java微信主动推送消息,java微信主动推送消息怎么实现?
- 小学计算机表格课件,小学信息技术级轻松做表格Word表格制作PPT课件.ppt
- RC523读身份证ID
- 怎么让你的网站快如飞?
- 爱国者(aigo)U391 128G 固态U盘制作PE启动盘
- 112家IT网络公司薪水一览表
- 记一次调试WM8978音频IC过程
- call_user_func_array函数详解
- 火爆数字资产Vpay plustoken各种钱包开发,你看中了哪一款?
- 数据可视化大屏demo制作(画图)