No fractions of seconds in TIMESTAMP column of SQL*PLus error logging table
I have a big SQL script that contains multiple SQL*Plus commands, SQL statements, and anonymous PL/SQL blocks. I execute the script in SQL*Plus. To help debug the script, I SET ERRORLOGGING ON in the session. It logs errors into a SPERRORLOG table, created as prescribed in SQL*Plus documentation. The table has a TIMESTAMP column of TIMESTAMP type. When I execute the script, errors are logged into that table (one must issue a COMMIT in that session to have log entries be seen in another session – which is not documented!).
It turns out that values in the TIMESTAMP column only have precision up to whole seconds – all records show “.000” as fractions of seconds (so it is not a NLS/displaying issue). TIMESTAMP column is the only one by which user can determine the chronological sequence of error entries created during script execution (script row numbers are not stored). Since no fractions of seconds are stored, the log often has multiple records with the same timestamp, which makes determining the sequence of error entries created within the same second impossible. Is there a way to have fractions of seconds to