Hi Yin
If you want insert a whole internal table data to dbtable one time, the only thing you could get is how many rows successfully inserted into datable, to check 'SY-DBCNT'. And if you do not add 'ACCEPTING DUPLICATE KEYS', the duplicate keys will occurs dump.
You wanna know which row is wrong, then you need 'LOOP' that itab, insert each row and check 'SY-SUBRC'. After this program finished, it will implicitly add 'COMMIT WORK'.
regards,
Archer