Skip to content

Can't decode dbobject fields from database with CL8MSWIN1251 character set #371

Open
@golubovai

Description

@golubovai
  1. What versions are you using?
    Oracle Database 19c (NLS_CHARACTERSET = CL8MSWIN1251)
    platform.platform: Windows-11-10.0.22631-SP0
    sys.maxsize > 2**32: True
    platform.python_version: 3.12.4
    oracledb.version: 2.3.0b1 (commit: c5c6b4f)
  1. Is it an error or a hang or a crash?
    It's error

  2. What error(s) or behavior you are seeing?
    File "src\oracledb\impl/thin/dbobject.pyx", line 489, in oracledb.thin_impl.ThinDbObjectImpl.get_attr_value
    File "src\oracledb\impl/thin/dbobject.pyx", line 192, in oracledb.thin_impl.ThinDbObjectImpl._ensure_unpacked
    File "src\oracledb\impl/thin/dbobject.pyx", line 308, in oracledb.thin_impl.ThinDbObjectImpl._unpack_data
    File "src\oracledb\impl/thin/dbobject.pyx", line 346, in oracledb.thin_impl.ThinDbObjectImpl._unpack_data_from_buf
    File "src\oracledb\impl/thin/dbobject.pyx", line 377, in oracledb.thin_impl.ThinDbObjectImpl._unpack_value
    File "src\oracledb\impl/base/buffer.pyx", line 746, in oracledb.base_impl.Buffer.read_str
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdf in position 0: unexpected end of data

  1. Does your application call init_oracle_client()?
    No, Thin
  1. Include a runnable Python script that shows the problem.
import oracledb

def main():
    oracledb.defaults.config_dir = ''
    with oracledb.connect(user='', password='', dsn='', mode=oracledb.AUTH_MODE_SYSDBA) as c:
        with c.cursor() as cur:
            sql = "select sys.tts_error_t('Я') from dual"
            for v in cur.execute(sql):
                print(v[0].VIOLATIONS)
                
                
if __name__ == "__main__":
    main()

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions