ORA-00932:inconsistencyt datatypes:expected,该怎么处理

本帖子已过去太久远了,不再提供回复功能。ORA-00932: inconsistent datatypes: expected,该怎么处理 - Oracle开发当前位置:& &&&ORA-00932: inconsistent datatypes: expected,该怎ORA-00932: inconsistent datatypes: expected,该怎么处理&&网友分享于:&&浏览:42次ORA-00932: inconsistent datatypes: expecteddata_sql&Varchar2(20000);
data_sql1&Varchar2(20000);
data_sql2&VARCHAR2(20000);
data_sql1:='SELECT&TO_CHAR&(r.create_time,''yyyy-MM-dd'')&reporttime,&r.callmen_name,r.callman_tel,r.reflected_people,&r.content,&r.handel_result,d.draught_name&happenarea,';
data_sql1:=data_sql1&||'&DECODE&(r.problem_type,&''0'',&''咨询'',&''1'',&''举报'',&''咨询'')&ctype,DECODE&(r.REPORT_METHOD_ID,&''rw1'',&''来电'',&''rw2'',&''来访'',&''rw3'',''来信'',''rw4'',''EMAIL'',''rw5'',''12345'',''rw6'',''政风行风'',''rw7'',''国家发改委'',''rw8'',''领导信箱'',''rw9'',''其它委办'',''来电'')&ways,q.levelname,r.odd_num,&r.work_no,&''''&beizhu,';
data_sql1:=data_sql1&||'&DECODE&(q.id,''3'',''粮食'',''9'',''成品油'',''8'',''电力'',''7'',''电力'',''6'',''电力'',''cy71'',''电力'',''4'',''化肥等农资'',''11'',''水价'',''12'',''水价'',''13'',''水价'',''cy72'',''水价'',''102'',''其它商品零售'',''60'',''商场超市'',''53'',''电子商业'',''cy66'',''其它商品零售'',''49'',''供热'',''50'',''供热'',''cy73'',''供热'',';
data_sql1:=data_sql1&||'&''47'',''燃气'',''48'',''燃气'',''cy74'',''燃气'',''52'',''其他商品'',''cy65'',''其他商品'',''cy67'',''其他商品'',''66'',''教育'',''68'',''教育'',''65'',''教育'',''67'',''教育'',''cy75'',''教育'',''cy60'',''医药'',''cy59'',''医药'',''cy76'',''医药'',''71'',''其它交通运输'',''72'',''其它交通运输'',''73'',''其它交通运输'',''74'',''其它交通运输'',''75'',''其它交通运输'',''cy62'',''其它交通运输'',';
data_sql1:=data_sql1&||'&''77'',''其它交通运输'',''cy61'',''其它交通运输'',''cy64'',''拖车'',''cy69'',''其它交通运输'',''78'',''机动车停车场'',''79'',''非机动车停车场'',''cy68'',''其它交通运输'',''80'',''旅游'',''81'',''旅游'',''cy78'',''旅游'',''82'',''房地产'',''83'',''房地产'',''84'',''房地产'',''cy79'',''房地产'',''85'',''物业管理'',''86'',''物业管理'',''cy80'',''物业管理'',''87'',''邮政通信'',''88'',''邮政通信'',''89'',''邮政通信'',''cy81'',''邮政通信'',';
data_sql1:=data_sql1&||'&''27'',''维修费'',''28'',''餐饮业'',''29'',''其他服务'',''30'',''其他服务'',''31'',''其他服务'',''90'',''其他服务'',''91'',''其他服务'',''92'',''其他服务'',''32'',''其他服务'',''40'',''其他'',''37'',''国土'',''38'',''环保'',''39'',''机关收费'',''36'',''质监'',''35'',''工商'',''34'',''公安'',''其他服务'')&trade';
data_sql1:=data_sql1&||'&from&REPORT_APPROVE&t&left&join&EMPLOYEE&e&on&e.id=t.group_leaderid&left&join&REPORT_FORM&r&left&join&QUESTIONCLASSIFY&q&on&q.id=r.problem_id&on&r.id=t.report_formid&left&join&draught&d&on&d.id=r.happen_areaid&&where&t.flowid&in&(''9'',''8'',''a4'')&and&t.emergencyid&is&null';
if&problemid&is&not&null&and&problemid&&&&'null'&
data_sql1:=data_sql1&||'&and&r.problem_id&IN&(SELECT&ID&FROM&questionclassify&&START&WITH&ID&='''||problemid||'''&CONNECT&BY&parentid&=&PRIOR&ID)&&';
if&tovoid&is&not&null&and&tovoid&&&&'null'&
if&tovoid&&&&'0'&
data_sql1:=data_sql1&||'&AND&(r.to_void&&&&''0'')&';
data_sql1:=data_sql1&||'&AND&r.to_void&=''0''';
if&ways&is&not&null&and&ways&&&'null'
if&ways&='rw1'
data_sql1:=data_sql1||'&and&(r.REPORT_METHOD_ID&is&null&or&r.REPORT_METHOD_ID='''||ways||''')&';&&&
data_sql1:=data_sql1||'&and&r.REPORT_METHOD_ID='''||ways||'''&';&
if&startdate&is&not&null&and&startdate&&&&'null'&
data_sql1:=data_sql1||'&AND&r.create_time&&=&TO_DATE&('''||startdate||''',&''yyyy-MM-dd&&HH24:mi:ss'')&&';
if&enddate&is&not&null&and&enddate&&&&'null'
data_sql1&:=data_sql1||'&AND&TO_DATE&('''||enddate||''',&''yyyy-MM-dd&&HH24:mi:ss'')&&=&r.create_time&';
if&deptid&is&not&null&and&deptid&&&&'null'&&and&deptid&&&&'dept1'&and&deptid&&&&'dept33'
data_sql1&:=data_sql1||'&AND&r.city_Area&in&(&'''||deptid||''')';
data_sql1&:=data_sql1||'&AND&r.city_Area&is&null';
data_sql2:='SELECT&TO_CHAR&(r.create_time,''yyyy-MM-dd'')&reporttime,&r.callmen_name,r.callman_tel,r.reflected_people,&r.content,&r.handel_result,d.draught_name&happenarea,';
data_sql2:=data_sql2&||'&DECODE&(r.problem_type,&''0'',&''咨询'',&''1'',&''举报'',&''咨询'')&ctype,DECODE&(r.REPORT_METHOD_ID,&''rw1'',&''来电'',&''rw2'',&''来访'',&''rw3'',''来信'',''rw4'',''EMAIL'',''rw5'',''12345'',''rw6'',''政风行风'',''rw7'',''国家发改委'',''rw8'',''领导信箱'',''rw9'',''其它委办'',''来电'')&ways,q.levelname,r.odd_num,&r.work_no,&''''&beizhu,';
data_sql2:=data_sql2&||'&DECODE&(q.id,''3'',''粮食'',''9'',''成品油'',''8'',''电力'',''7'',''电力'',''6'',''电力'',''cy71'',''电力'',''4'',''化肥等农资'',''11'',''水价'',''12'',''水价'',''13'',''水价'',''cy72'',''水价'',''102'',''其它商品零售'',''60'',''商场超市'',''53'',''电子商业'',''cy66'',''其它商品零售'',''49'',''供热'',''50'',''供热'',''cy73'',''供热'','; 共&2&页:
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有查看: 8469|回复: 6
ORA-00932: inconsistent datatypes: expected ROWID got NUMBER
论坛徽章:2
日志中遇到以下错误,重现不了,但是客户一定要求查出原因。
欲哭无泪!
ORA-00932: inconsistent datatypes: expected ROWID got NUMBER
& & at oracle.jdbc.dbaccess.DBError.throwSqlException (DBError.java:134)
& & at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
& & at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
& & at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
& & at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
& & at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
& & at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
& & at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2709)
& & at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
& & at oracle.jdbc.driver.UpdatableResultSet.execute_updateRow(UpdatableResultSet.java:2231)
& & at oracle.jdbc.driver.UpdatableResultSet.updateRow(UpdatableResultSet.java:1369)
& & at com.hp.es.service.batchEntitlement.db.DbBatchEntitlementManager.getNextSubRequest(Unknown Source)
& & at com.hp.es.service.batchEntitlement.Worker.processNextSubRequest(Unknown Source)
& & at com.hp.es.service.batchEntitlement.Worker.run(Unknown Source)
被调用的SQL语句使用for update,然后在修改一个字段时就出现了这个问题。
论坛徽章:0
应该是修改的值与字段类型不符吧!!
论坛徽章:31
重现不了?
那说明这个操作没有引起操作异常?
在应用程序里找找关于用到ROWID的地方
问题估计是想通过ROWID作些操作引起的
论坛徽章:2
忘了说了,应用程序中没有任何地方用到ROWID。以上错误从追踪栈看到,问题应该是出在ResultSet.updateRow()上。该方法的实现是使用了ROWID的。
我现在想模拟出这种错误,但是总是不成功
论坛徽章:31
数据库本身有异常吗?
或者出现坏快等情况!
招聘 : 论坛徽章:1
期待问题解答
论坛徽章:1
本帖最后由 readylau 于
21:37 编辑
seafer7676 发表于
忘了说了,应用程序中没有任何地方用到ROWID。以上错误从追踪栈看到,问题应该是出在ResultSet.updateRow() ...
ResultSet.updateRow()的问题?不是吧 这个是oracle的底层代码,只是因为你的sql调用而在后台生成的出错日志罢了
我觉得还是你的程序中用到ROWID,且赋值错误了
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号7396人阅读
SQL& SELECT DISTINCT D.SQL_ID, D.SQL_FULLTEXT, D.SQL_TEXT& 2&&& FROM V$SQL D& 3&& WHERE D.SQL_ID = 'fsuzhxtaw402x';
ORA-00932: inconsistent datatypes: expected - got CLOB
-- 由于SQL_FULLTEXT是CLOB类型,可能是oracle不支持对CLOB类型的distinct&& 去掉distinct后查询正常
SQL& SELECT D.SQL_ID, D.SQL_FULLTEXT, D.SQL_TEXT& 2&&& FROM V$SQL D& 3&& WHERE D.SQL_ID = 'fsuzhxtaw402x';
SQL_ID&&&&&&&&&&&&&&SQL_FULLTEXT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SQL_TEXT&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& -------------------& --------------------------------------------------&&&&& ------------------------------------------------fsuzhxtaw402x &select seq_pmain.nextval from dual&&&&&select seq_pmain.nextval from dualfsuzhxtaw402x& select seq_pmain.nextval from dual&&&&&select seq_pmain.nextval from dual
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1445709次
积分:18470
积分:18470
排名:第362名
原创:463篇
评论:89条
(4)(2)(1)(6)(4)(10)(4)(4)(6)(10)(11)(14)(14)(1)(5)(2)(2)(5)(7)(3)(2)(2)(4)(6)(3)(2)(1)(9)(2)(6)(1)(6)(6)(4)(4)(10)(4)(10)(10)(11)(13)(11)(5)(10)(27)(22)(17)(24)(8)(16)(31)(29)(25)(7)(1)(1)(2)(2)(4)(1)(1)sql - ORA-00932: inconsistent datatypes: expected CHAR got NUMBER - Stack Overflow
to customize your list.
Join the Stack Overflow Community
Stack Overflow is a community of 6.6 million programmers, just like you, helping each other.
J it only takes a minute:
The logic is if an order is cancelled then return 0 otherwise return the owed value - the paid value
Small query
CASE WHEN d.cancelled = 'TRUE'
ELSE (to_char(b.owed)) - (to_char(d.paid))
END AS balance,
Getting the error
ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
"inconsistent datatypes: expected %s got %s"
Error at Line: 25 Column: 58
7,841154784
try this, either your case should return number or varchar, right now your case return '0' as varchar and else as number. Either both return number or both return number
When Both return varchar
CASE WHEN d.cancelled = 'TRUE'
ELSE to_char((to_char(b.owed)) - (to_char(d.paid)))
END AS balance,
When Both return number
CASE WHEN d.cancelled = 'TRUE'
ELSE (to_char(b.owed)) - (to_char(d.paid))
END AS balance,
When Both return number
CASE WHEN d.cancelled = 'TRUE'
ELSE (b.owed - d.paid)
END AS balance,
5,682132035
This (to_char(b.owed)) - (to_char(d.paid))
will be a number and 0 is a string. You should remove the ticks in thenclause or ad a to_char in else clause: to_char((to_char(b.owed)) - (to_char(d.paid))) or simply (b.owed - d.paid)
105k26158159
38.4k112949
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
rev .24748
Stack Overflow works best with JavaScript enabled}

我要回帖

更多关于 inconsistency 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信