You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
What error(s) or behavior you are seeing?
Incorrect serialization or deserialization of complex objects that contain Cyrillic characters.
Objects after writing do not look like Cyrillic in the database.
At the same time, if the procedure accepts simple types - for example, a string - as input, then writing Cyrillic into this string is done correctly, and I see real Cyrillic in the database.
The problem occurs in the thin client.
Does your application call init_oracle_client()?
No
Include a runnable Python script that shows the problem.
CREATETABLEUNI_API.MY_TABLE (
ID NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
TEXT_VALUE VARCHAR2(4000)
);
CREATE OR REPLACETYPEUNI_API.MY_COMPLEX_TYPE AS OBJECT (
text_value VARCHAR2(4000),
number_value NUMBER
);
CREATE OR REPLACE PROCEDURE UNI_API.INSERT_TEXT_EXAMPLE_RETURN_2 (
p_data INUNI_API.MY_COMPLEX_TYPE,
p_ret_text OUT VARCHAR2,
p_ret_id OUT NUMBER
) ASBEGININSERT INTOUNI_API.MY_TABLE(TEXT_VALUE)
VALUES(p_data.NUMBER_VALUE||''||p_data.TEXT_VALUE)
RETURNING TEXT_VALUE, ID INTO p_ret_text, p_ret_id;
COMMIT;
END INSERT_TEXT_EXAMPLE_RETURN_2;
dotX12
changed the title
Problem with Cyrillic encoding for complex objects.
Problem with Cyrillic encoding for complex objects
Mar 18, 2025
dotX12
changed the title
Problem with Cyrillic encoding for complex objects
Problem with Cyrillic encoding for complex objects in thin mode
Mar 18, 2025
Thanks for confirming. This is indeed a duplicate of #371. The encoding of an object uses the database encoding regardless of the setting of the client encoding. Changing the database character set to AL32UTF8 will resolve this issue. I am still considering other possible workarounds, however!
What versions are you using?
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
platform.platform: macOS-15.3.1-arm64-arm-64bit
sys.maxsize > 2**32: True
platform.python_version: 3.12.9
Is it an error or a hang or a crash?
No
What error(s) or behavior you are seeing?
Incorrect serialization or deserialization of complex objects that contain Cyrillic characters.
Objects after writing do not look like Cyrillic in the database.
At the same time, if the procedure accepts simple types - for example, a string - as input, then writing Cyrillic into this string is done correctly, and I see real Cyrillic in the database.
The problem occurs in the thin client.
No
Response:
Through datagrip I execute a query to see what is recorded in the database - and there are also characters that do not look like Cyrillic.
The text was updated successfully, but these errors were encountered: