Di posting kali ini saya mencoba meng share cara mengatasi error PL/SQL: ORA-01790: expression must have same datatype as corresponding expression, itu disebabkan saat proses union all ataupun union tipe datanya tidak sama misalnya di data sebelum join formatnhya date akan tetapi ketika proses union data yang satu lagi formatnya char.
maka solusinya kedua format tersebut dibuat sama yang awalnya
SELECT (SELECT TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY') FROM SAP_INVOICE WHERE NO_SHIPMENT IN ('SCH01022018') UNION ALL SELECT TO_CHAR (TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY'), 'DD/MM/YYYY') FROM SAP_INVOICE WHERE NO_SHIPMENT IN ('SCH01022018')) FROM DUAL
Terlihat di atas bahwa field yang PAYMENT_DATE yang satu di format date yang satu di format char
TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY')
sedangkan yang satu lagi
TO_CHAR(TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY'), 'DD/MM/YYYY')
Maka agar tidak terjadi error format keduanya kita samakan menjadi to_char
SELECT (TO_CHAR (TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY'), 'DD/MM/YYYY') FROM SAP_INVOICE WHERE NO_SHIPMENT IN ('SCH01022018') UNION ALL SELECT TO_CHAR (TO_DATE (PAYMENT_DATE, 'DD/MM/YYYY'), 'DD/MM/YYYY') FROM SAP_INVOICE WHERE NO_SHIPMENT IN ('SCH01022018')) FROM DUAL
Sekian posting kali ini.