“ORA-03146: invalid buffer length for TTC field” after upgrade from Oracle 12 to 19c
JDBC application fails with ORA-03146: Invalid Buffer Length For TTC Field After Database Upgrade to 19c (Doc ID 2729562.1)

Updating a 12c database to 19.6 can result in this issue. In this
particular case, the database was upgraded from 12.1.0.2.
The ORA-3137 [3146] is a protocol exception which means that the
database has not consumed all the data from the user buffer for the
long bind.
This issue is addressed in Bug:30955880 - ORA-3137 [3146] [4] /
ORA-3137 [3146] [94] UPDATING LOB WITH LARGE BIND which was closed as
duplicate of unpublished Bug 31625618 - DML OVER A LOB COLUMN USING
LONG BIND FAILS WITH AN ORA-3137 [3146] ERROR WHEN THE BIND SIZE IS &gt;
256K BYTES.

Then:
Bug 31625618 - DML Over a LOB Column Using Long Bind Fails with ORA-3137 [3146] [4] / ORA-3137 [3146] [94] When the Bind Size is &gt; 256k Bytes (Doc ID 31625618.8)

Clients (JDBC/OCI) performing DML's on a LOB column intermittently
fail  with the below errors, when the bind length is &gt; 256k bytes:
ORA-03137: malformed TTC packet from client rejected: [3146] [4]    ORA-03137: malformed TTC packet from client rejected: [3146] [94]
ORA-03146: invalid buffer length for TTC field

I quoted this part to highlight that this issue was not specific to JDBC.
Fix for Bug 31625618 exists as a oneoff patch for 19c versions below 19.10.
The bug is fixed in database version 19.10, which will be released next week.
Currently you are on 19.3. Apply the necessary patches.