You are trying to insert Unicode values into a VARCHAR2
column, which can only handle encoded byte strings.
cx_Oracle is trying to encode your Unicode values for you to fit the column type, and does so with the default codec for your connection.
Either encode your values to a suitable encoding manually or make your columns use NVARCHAR2
instead.
The latter has the added advantage that column lengths are expressed in characters, not bytes; UTF-8 data can use up to 4 bytes per character, so a VARCHAR2(1000)
column could, in a worst-case scenario, fit only 250 actual characters.