DatabaseOracleOracle SQL Developer

Mengatasi Error PL/SQL: ORA-01790: expression must have same datatype as corresponding expression

275
oracle database big
oracle database big

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.

Exit mobile version