ORA-00932:資料型別不一致:應為-,但卻獲得CLOB
阿新 • • 發佈:2019-01-03
我出現上面這個異常的原因是:WM_CONCAT()函式返回的是文字型別,作為關聯欄位時取得CLOB沒有,沒有取到真正的欄位值,將欄位TO_CHAR()轉為字串便沒有報錯了。SELECT * FROM ( SELECT SUM(debitquantity) AS "debitquantity", SUM(debitamount) AS "debitamount", SUM(localdebitamount) AS "localdebitamount", SUM(creditquantity) AS "creditquantity", SUM(creditamount) AS "creditamount", SUM(localcreditamount) AS "localcreditamount", TO_CHAR(WM_CONCAT(DISTINCT tablex.pkAccsubj)) AS pkAccsubj FROM (SELECT SUM(glDetail.creditamount) AS creditamount, SUM(glDetail.debitamount) AS debitamount, SUM(glDetail.localcreditamount) AS localcreditamount, SUM(glDetail.localdebitamount) AS localdebitamount, SUM(glDetail.creditquantity) AS creditquantity, SUM(glDetail.debitquantity) AS debitquantity, glDetail.pk_accsubj AS pkAccsubj FROM gl_detail glDetail LEFT JOIN bd_accsubj bdAccsubj ON glDetail.pk_accsubj = bdAccsubj.pk_accsubj LEFT JOIN gl_voucher glVoucher ON glDetail.pk_voucher = glVoucher.pk_voucher WHERE 1 = 1 AND glDetail.yearv = '2014' AND glDetail.periodv = '01' AND bdAccsubj.subjcode LIKE CONCAT(1001, '%') AND glVoucher.pk_corp = '1012' AND glVoucher.isdifflag = 'N' AND (glVoucher.pk_manager IS NOT NULL AND glVoucher.pk_manager != 'N/A') GROUP BY glDetail.yearv, glDetail.periodv, glDetail.pk_accsubj) tablex ) tableA LEFT JOIN ( SELECT (SUM(debitquantity) - SUM(creditquantity)) AS "initamount", (SUM(debitamount) - SUM(creditamount)) AS "initcreditamount", (SUM(localdebitamount) - SUM(localcreditamount)) AS "initdebitamount", TO_CHAR(WM_CONCAT(DISTINCT tabley.pkAccsubj)) AS pkAccsubj FROM (SELECT SUM(glDetail.creditamount) AS creditamount, SUM(glDetail.debitamount) AS debitamount, SUM(glDetail.localcreditamount) AS localcreditamount, SUM(glDetail.localdebitamount) AS localdebitamount, SUM(glDetail.creditquantity) AS creditquantity, SUM(glDetail.debitquantity) AS debitquantity, glDetail.pk_accsubj AS pkAccsubj FROM gl_detail glDetail LEFT JOIN bd_accsubj bdAccsubj ON glDetail.pk_accsubj = bdAccsubj.pk_accsubj LEFT JOIN gl_voucher glVoucher ON glDetail.pk_voucher = glVoucher.pk_voucher WHERE 1 = 1 AND glDetail.yearv = '2014' AND bdAccsubj.subjcode LIKE CONCAT(1001, '%') AND glVoucher.pk_corp = '1012' AND glVoucher.isdifflag = 'N' AND (glVoucher.pk_manager IS NOT NULL AND glVoucher.pk_manager != 'N/A') GROUP BY glDetail.yearv, glDetail.periodv, glDetail.pk_accsubj) tabley ) tableB ON tableA.pkAccsubj = tableB.pkAccsubj