oracle中union出现字符集不匹配错误

GZHSL 2011-03-23 11:02:29
INSERT INTO tt_v_t2_2
SELECT t.ActivityName,
COUNT(*) InstanceCount
FROM ( SELECT a.ActivityName
FROM bwwf_Tracking_Activities ta
LEFT JOIN bwwf_Activities a
ON ta.ActivityId = a.ActivityId
WHERE ta.WorkflowInstanceId IN ( SELECT workflowinstanceid
FROM tt_v_workflows ) ) t
GROUP BY t.ActivityName
UNION
SELECT '完成' ActivityName,
COUNT(*) InstanceCount
FROM bwwf_Tracking_Workflows
WHERE STATE = 2
AND WorkflowInstanceId IN ( SELECT workflowinstanceid
FROM tt_v_workflows )
UNION ALL
SELECT '取消' ActivityName,
COUNT(*) InstanceCount
FROM bwwf_Tracking_Workflows
WHERE STATE = 99
AND WorkflowInstanceId IN ( SELECT workflowinstanceid
FROM tt_v_workflows )


里面有3个select,单独查询都能查出数据,后面两个能够用union all合并,但是前面一个合并就会出现字符集不匹配的错误。前面用了union all还是一样的,求高手解答!!!!
...全文
1344 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoliming365 2011-10-27
  • 打赏
  • 举报
回复
to_char('完成') as ActivityName
to_char('取消') as ActivityName
guoliming365 2011-10-27
  • 打赏
  • 举报
回复
to_char()一下字符型数据
Rotel-刘志东 2011-03-23
  • 打赏
  • 举报
回复
字符不编码问题。
Well 2011-03-23
  • 打赏
  • 举报
回复
???什么意思?
vanjayhsu 2011-03-23
  • 打赏
  • 举报
回复
检查ActivityName的字段类型,估计是NVARCHAR2,常量字符串'完成' 、'取消' 都是VARCHAR2,所以数据类型不一致
quanhj 2011-03-23
  • 打赏
  • 举报
回复
应该是ActivityName
和 完成 取消的 问题吧 。
xiaoguanzhao 2011-03-23
  • 打赏
  • 举报
回复
使用union时,二个表或多个表对应的字段类型要一致,不一致时必须做转换
kingtiy 2011-03-23
  • 打赏
  • 举报
回复
ActivityName
'完成'
'取消'
这三列的字符长度不一样.
to_char(完成',varchar2(50))长度设置成ActivityName列定义的长度一样就可以了.
rexyudl 2011-03-23
  • 打赏
  • 举报
回复
1、tt_v_t2_2这个表的结构和你导入的数据是否匹配?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧