Sql &引用;ORA-00932:不一致的数据类型;带CLOB场

Sql &引用;ORA-00932:不一致的数据类型;带CLOB场,sql,oracle,clob,Sql,Oracle,Clob,我在运行查询时出错,我的错误与CLOB有关。我没有找到解决问题的办法 我运行以下查询: SELECT wm_concat( employee.id_employe ) FROM decision decs LEFT OUTER JOIN decision_to_employee dec_emp ON dec_emp.id_decision = decs.id_decision LEFT OU

我在运行查询时出错,我的错误与CLOB有关。我没有找到解决问题的办法

我运行以下查询:

  SELECT wm_concat( employee.id_employe )
    FROM decision decs 
         LEFT OUTER JOIN decision_to_employee dec_emp 
                         ON dec_emp.id_decision = decs.id_decision  
         LEFT OUTER JOIN employee employee 
                         ON dec_emp.id_employee = employee.id_employe 
         LEFT OUTER JOIN employee_lang employee_lang  
                         ON employee.id_employe = employee_lang.id_employe 
                         AND employee_lang.lang_emp_lang = 'ar'  
   WHERE decs.id_decision = 'DEC-29' 
         AND dec_emp.type_to = 'to' 
         AND dec_emp.id_decision = decs.id_decision  
GROUP BY   decs.id_decision  

UNION  
  SELECT wm_concat( unit_lang.id_unit )
    FROM decision decs 
         LEFT OUTER JOIN decision_to_unit dec_unit
                         ON dec_unit.id_decision = decs.id_decision  
         LEFT OUTER JOIN unit_lang 
                         ON unit_lang.id_unit = dec_unit.id_unit 
                         AND unit_lang.lang_unit_lang = 'ar' 
   WHERE decs.id_decision = 'DEC-29'
         AND dec_unit.type_to = 'to' 
         AND dec_unit.id_decision = decs.id_decision 
GROUP BY decs.id_decision 
但我有一个错误:

[APP] WARN [http-8080-1] JDBCExceptionReporter.logExceptions(100) | SQL Error: 932, SQLState: 42000
[APP] ERROR [http-8080-1] JDBCExceptionReporter.logExceptions(101) | ORA-00932: inconsistent datatypes ; expected: - ; got : CLOB
我认为在查询中使用
Union
时出现了此错误

更新:

decision : 

ID_DECISION : varchar2(15)
TEXT_DECISION : varchar2(4000)
NB_PAGE_DECISION : varchar2(15)
SUBJECT_DECISION : varchar2(15)
DATE_CREATE : date
USER_CREATE : varchar2(15)
NUM_ORDRE_DECISION : varchar2(20)
DATE_JC_DECISION : date
DATE_HJR_DECISION : varchar2(15)
TYPE_RECEIVE : varchar2(1)
DATE_RECEIVE : date
USER_RECEIVE : varchar2(15)
ID_TYP_CORRESP : varchar2(15)
ID_FOLDER : varchar2(15)
DOC_LINK_CORRESP : varchar2(15)

employee : 

ID_EMPLOYE : varchar2(15)
ID_JOB : varchar2(15)
ID_JOB : varchar2(15)
TEL_EMPLOYE : varchar2(15)
FAX_EMPLOYE : varchar2(15)
MAIL_EMPLOYE : varchar2(100)
STATUT : varchar2(1)
CONFIDENTIEL : varchar2(1)
NUM_IDENTITY : varchar2(15)
ID_PORTAL : varchar2(100)


employee_lang : 

ID_EMP_LANG : varchar2(15)
ID_EMPLOYE : varchar2(15)
FULLNAME_EMP_LANG : varchar2(500)
ADDRESS_EMP_LANG : varchar2(500)
LANG_EMP_LANG : varchar2(5)
MATRICULE_EMP : varchar2(10)

decision_to_employee

ID_DECISION : varchar2(15)
ID_EMPLOYEE : varchar2(15)
TYPE_TO : varchar2(5)



decision_to_unit : 

ID_DECISION : varchar2(15)
ID_UNIT : varchar2(15)
TYPE_TO : varchar2(5)


unit_lang : 

ID_UNIT_LANG : varchar2(15)
ID_UNIT : varchar2(15)
ADDRESS_UNIT_LANG : varchar2(500)
NBR_UNIT_LANG : varchar2(15)
NAME_UNIT_LANG : varchar2(500)
ABBREVIATED_NAME_UNIT : varchar2(15)
LANG_UNIT_LANG : varchar2(5)

我认为您的查询有几个问题:

  • 您将
    varchar
    numeric
    进行比较,这是错误的:
    decs.id\u decision='DEC-29'
  • 您正在使用未记录的
    wm_concat
    。改用
    listag
  • 您在
    decs.id\u decision
    上分组,但没有在结果中使用它,这对我来说毫无意义
  • 在第一部分和第二部分之间有一个换行。这在某些环境中可能会导致问题。把它放在一起

  • 您应该使用UNION ALL而不是UNION
    在不知道字段类型的情况下,请参阅回复以了解此错误,我们无法帮助您。您能进一步解释一下吗?分组子查询的括号有帮助吗?谢谢您的回答,我已经更新了我的问题列表AGG,它仅在Oracle 11g第2版中引入