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相关推荐

  1. oracle创建视图类型为日期,oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB...

    在oracle中创建视图的时候,语句中包含有clob类型的字段.视图创建语句大概如下: CREATE OR REPLACE FORCE VIEW "T_PROJECTS" (&qu ...

  2. 没有CLOB类型却报ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB

    这个主要是在Oracle查询中用到了wm_concat()函数{进行对同一列取到多行数据合并到一行并用英文逗号","分开} 刚开始猜测在不同版本中导致这条数据返回值不一样产生的问题 ...

  3. 编译错误 错误:PL/SQL: ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 NUMBER 行

    文章目录 1. 现象 2. 分析 3. 解决方案 通过存储过程将临时B表中的数据同步到轨迹表中 1. 现象 PROCEDURE LABS.ASSET_LOANP 编译错误错误:PL/SQL: ORA- ...

  4. 【Vegas原创】exp时,ORA-00932: 数据类型不一致解决方法

    现象: EXP-00056: 遇到 ORACLE 错误 932 ORA-00932: 数据类型不一致: 应为 BLOB, CLOB, 但却获得 CHAR EXP-00000: 导出终止失败 解决方法: ...

  5. mysql自增主键和mybatis自增主键不一致问题(已解决):

    mysql自增主键和mybatis自增主键不一致问题(已解决): 在插入数据前,先进行查询主键 <insert id="insertSelective"><sel ...

  6. 已解决pandas创建DataFrame对象失败

    已解决(pandas创建DataFrame对象失败)ValueError: Shape of passed values is (1509, 1), indices imply (1509, 2) 文 ...

  7. 已解决ValueError: 4 columns passed, passed data had 2 columns

    已解决(pandas创建DataFrame对象失败)ValueError: 4 columns passed, passed data had 2 columns 文章目录 报错代码 报错翻译 报错原 ...

  8. ODI Studio(问题7)ORA-00932:数据类型不一致--BLOB

    问题:数据类型不一致:应为-,但却获得BLOB. 措施: 1.在流中,设置源表的加载模块为:LKM SQL to SQL BLOB(JYTHON). 2.设置目标表的集成模块为:IKM SQL Inc ...

  9. 已解决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) 文 ...

  10. Access中出现改变字段“自己主动编号”类型,不能再改回来!(已解决)

    Access中出现改变字段"自己主动编号"类型,不能再改回来! (已解决) 一次把access中的自增字段改成了数值,再改回自增时,提示:在表中输入了数据之后,则不能将不论什么字段 ...

最新文章

  1. 迅捷路由连接服务器未响应,迅捷路由器通过falogin.cn登录不了管理界面的解决办法...
  2. ubuntu服务器php7.2启用mysqli(不用reboot超简单)
  3. 10种CSS3实现的Loading效果
  4. position的四种属性
  5. 嵩天-Python语言程序设计程序题--第九周:Python计算生态纵览
  6. Echart折线图 柱状图
  7. windows内核情景分析---进程线程2
  8. 质疑“扩版=质量下降”——以《中国农学通报》和《安徽农业科学》为例
  9. 01.自定义View(ArcView弧形进度条)
  10. 小熊错误_《三只小熊闯祸了》:想要孩子勇于承认错误,怎么跟TA聊?
  11. android记账本的技术路线,Android — 个人简洁记账本项目开发日志
  12. 【数据结构】顺序表实现超详解(保姆级教程)
  13. 1.Spring入门
  14. 一旅客列车在广西柳城县脱轨 4人死亡50余人受伤
  15. Diebold-Mariano检验
  16. 简述RC低通滤波原理
  17. platform设备驱动简介
  18. 以地图视角回顾70年互联网发展
  19. ios 调整麦克风音量_ios 调整麦克风音量_如何在ios 7中获得麦克风音量?
  20. HQChart使用教程89-最后一根k线倒计时功能

热门文章

  1. java 微信主动推送消息_java微信主动推送消息,java微信主动推送消息怎么实现?
  2. 小学计算机表格课件,小学信息技术级轻松做表格Word表格制作PPT课件.ppt
  3. RC523读身份证ID
  4. 怎么让你的网站快如飞?
  5. 爱国者(aigo)U391 128G 固态U盘制作PE启动盘
  6. 112家IT网络公司薪水一览表
  7. 记一次调试WM8978音频IC过程
  8. call_user_func_array函数详解
  9. 火爆数字资产Vpay plustoken各种钱包开发,你看中了哪一款?
  10. 数据可视化大屏demo制作(画图)