相关文章推荐

使用to_char()方法将文本转成字符串类型即可。

原sql:就是将selectfk中的多个值根据特地符号分割成多条记录,并与其他表关联查询其他信息。但是运行的时候就会出现该错误。ORA-00932:数据类型不一致:应为-,但却获得CLOB。因为REGEXP_SUBSTR()函数返回的是一段文本并不是字符串,所以关联的时候会取不到类型报错。所以使用to_char()将文本转成字符串。

SELECT
  zjb2.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
 		zjb1.id   as id,
		REGEXP_SUBSTR(zjb1.selectfk, '[^,]+', 1 ,rownum)  as perinfofk,
		zjb1.oldoufk    as oldoufk,
		zjb1.newoufk    as newoufk,
		zjb1.txdate     as txdate
(SELECT zjb.id,zjb.oldoufk,zjb.newoufk,zjb.selectfk,nvl(zjb.ddsj,zjb.txdate) as txdate
	FROM 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如下

SELECT
  zjb2.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 DISTINCT
 		zjb1.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
(SELECT zjb.id,zjb.oldoufk,zjb.newoufk,zjb.selectfk,nvl(zjb.ddsj,zjb.txdate) as txdate
	FROM 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
                    1.问题原因Oracle的sql中的使用函数返回的值的字段没有对应的类型,只是一段文本。所以在使用该字段关联的时候就会报错。2.解决办法使用to_char()方法将文本转成字符串类型即可。
       SELECT SUM(debitquantity) AS "debitquantity",
              SUM(debitamount) AS "debitamount",
              SUM(localdebitamount) AS "localdebitamount",
              SUM(cred...
今天执行Oracle 的sql 查询语句的时候,出现了一条以前没有遇到过的错误:ORA-00932: 数据类型一致: 应为 -, 但却获得 CLOB
经过百度和自己和实际情况改好了。
错误前的sql语句:
select m.m_id,m.m_title,m.m_content,wm_concat(a_oldName) a_oldName from t_me...
在一个应用项目中,原来运行得好好得,但升级后,却报“ORA-00932: 数据类型一致: 应为 -, 但却获得 CLOB ”。经查,一表增加了CLOB类型字段,用于存储用户照片数据。
原报错查询为2个表关联,经过简化,可以得出能导致同样报错的典型SQL句式,见下面第一条SQL:
select distinct u.* from t_user u,t_org wh...
				
orcle 10g不支持对类型为CLOB的字段进行distinct去重,遇到这种查询需求时就需要对sql进行修改,以下是几种修改的方法: 1、利用to_char(column)函数CLOB字段转换为char类型,但是有限制,如果clob字段的字符长度超过4000时会报错。如果必须使用的话建议设置长度,使用 TO_CHAR(SUBSTR(column,0,3999))组合函数 2、使用子查询过滤掉重复数据,然后作为条件参与查询 select d.*, i.Process_Instance_Id fro
今天在编写视图的时候遇到了“ORA-00932: 数据类型一致: 应为 CHAR, 但却获得 NUMBER”这个问题。        视图具体内容是:        CASE WHEN MONEY = 0 OR MONEY IS NULL THEN '0'        ELSE MONEY/REGCAPITAL END AS CONPROP;        后来百度过之后发现有类似错误
数据库Oracle,拼接的sql使用hibernate查询的时候报错: java.sql.SQLException: ORA-00932: 数据类型一致: 应为 NUMBER, 但却获得 BINARY 部分代码如下: String sql =“select * from table where whId= :whId”; SQLQuery query = createSQLQuery(sql); query.setParameter(“whId”, queryParam.getWhId()); 出错:ora-00932:数据类型一致:应为 -,但却获得BLOB 解决思路 因为我关联的时候,有的数据可以对应上上Clob 字段,有的则为空,但我又想把这些数据都显示出来,一直想的是怎么把字符串转成CLOB 类型,查找了半天,也没有发现一个好办法,好像大家都不经常用转成CLOB类型函数。 TO_CLOB() UPDATE PRINT_MEDI
ORA-00932: 数据类型一致: 应为 -, 但却获得 NCLOB ORA-00932: inconsistent datatypes: expected - got NCLOB 问题分析: 因为oracle 数据库在字段长度超过2000时就会出现上面的问题 解决办法: 1、更新版本 2、修改数据库中的字段类型 找到错误的字段,把NVARCHAR2(4000) 或NCLOB 类型修改为NVARCHAR2(2000) 以上就是ORA-00932: inconsistent EXP-00056: 遇到 ORACLE 错误 932 ORA-00932: 数据类型一致: 应为 BLOB, CLOB, 但却获得 CHAR EXP-00000: 导出终止失败 解决方法:...
### 回答1: 这个错误提示是因为在数据库操作中,数据类型不匹配导致的。具体来说,应该是在某个操作中,需要使用“-”类型的数据,但是实际获取到的是“CLOB”类型的数据,这就导致了数据类型一致的错误。 解决这个问题的方法,就是要检查代码中的数据类型是否正确,以及数据的来源是否正确。如果数据类型不匹配,需要进行类型转换;如果数据来源不正确,需要检查数据的输入方式,确保数据的类型和格式正确。 ### 回答2: 我们知道在Oracle数据库中,数据类型是非常严格的,任何一个不一致数据类型都会导致错误。ORA-00932错误就是这样一种错误,它意味着我们尝试将CLOB数据类型转换为其他数据类型时发生错误,因为CLOB类型包含的数据太大,无法转换成其他数据类型CLOB是一个特殊的数据类型,它可以存储非常大的字符数据,因此它通常用于存储文本文档,日志文件等非常大的数据。CLOB类型主要用于处理大型数据,而其他数据类型(如CHAR,VARCHAR2等)主要用于处理较小的数据。由于CLOB类型的特殊性,我们必须小心使用它,因为在某些情况下,CLOB数据可能会与其他数据类型不兼容,这就会引发ORA-00932错误。 要解决ORA-00932错误,我们必须确保所有数据类型都是相同的。例如,如果我们想将CLOB数据类型转换为其他数据类型,我们必须在转换之前先确保我们的目标数据类型可以处理很大的字符数据,否则转换将失败并引发ORA-00932错误。 此外,我们还可以通过其他一些方法来解决这个问题,例如使用varchar2(max)数据类型来代替CLOB,因为这个数据类型可以存储最大长度的字符数据。我们还可以使用BLOB类型来存储大型二进制数据。 总结来说,ORA-00932错误是Oracle数据库中常见的一个错误,它表明数据类型一致,我们必须小心使用CLOB类型,并确保我们的目标数据类型能够处理大型字符数据。如果我们按照正确的方式来处理这个问题,在大型数据处理中,CLOB类型会变得非常有用。 ### 回答3: 问题描述: 如果在查询语句中使用不同的数据类型,则可能会发生ORA-00932错误。例如,如果您在查询中尝试比较VARCHAR2和CLOB数据类型,则可能会遇到此错误。 ORA-00932错误可能是应用程序在向数据库中插入、更新或删除数据时出现的问题。发生此错误的原因是,应用程序试图在存储CLOB数据类型的列中插入VARCHAR2值,或者在存储VARCHAR2数据类型的列中插入CLOB值。这是因为CLOB和VARCHAR2数据类型Oracle数据库中具有不同的结构和用途。 解决方案: 1.检查数据类型: 确定插入的值类型与表的数据类型是否匹配。如果不匹配,则应更改值的数据类型,并将其设置为使用相应数据类型的列中的值。 2.使用TO_LOB: 使用TO_LOB将VARCHAR2值转换为CLOB类型,然后执行插入操作。TO_LOB函数将VARCHAR2类型的值转换为CLOB类型。 3.使用DBMS_LOB: 使用DBMS_LOB包中提供的子程序,将值从表中的CLOB列中检索出来,将其转换为VARCHAR2类型的值,并在应用程序中使用它。 总之,ORA-00932错误通常是由于应用程序试图在不同的数据类型之间执行比较而引起的。在解决此错误时,请始终确保所有值具有正确的数据类型,并使用适当的函数将它们转换为正确的类型。
git提交或克隆报错fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec 136051 git提交或克隆报错fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec 巴拉拉敏: 成功啦,感谢 已解决:Could not find artifact xxx dogesfgs: 感谢大佬 原来是有父工程也要clean 、install git提交或克隆报错fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec sand&wich: 还是不行的朋友用这个命令git config --global http.sslVerify "false"
 
推荐文章