Closed ivba7 closed 1 year ago
I can replicate the issue. It looks like %ROWTYPE isn't handled properly in thin mode. I'll see what is needed to correct that. Thanks for the report!
I have pushed a patch that should correct this issue and added a relevant test case. If you are able to build from source you can verify that it corrects your issue as well.
This patch is included in version 1.2.2 which was just released.
oracle 19.0.0.0.0 platform.platform: Linux-4.18.0-425.3.1.el8.x86_64-x86_64-with-glibc2.2.5 sys.maxsize > 2**32: True platform.python_version: 3.8.13 oracledb.version: 1.2.1
Error my_type_1 = tpm_db.conn.gettype( 'TPM.TEST_TYPES.TBL_REC_TRANSACTIONS1')
Traceback (most recent call last): File "test_db_gettype.py", line 19, in
my_type_1 = tpm_db.conn.gettype(
File "/home/r432107/myenv38/lib64/python3.8/site-packages/oracledb/connection.py", line 441, in gettype
obj_type_impl = self._impl.get_type(self, name)
File "src/oracledb/impl/thin/connection.pyx", line 361, in oracledb.thin_impl.ThinConnImpl.get_type
File "src/oracledb/impl/thin/dbobject.pyx", line 897, in oracledb.thin_impl.ThinDbObjectTypeCache.get_type
File "src/oracledb/impl/thin/dbobject.pyx", line 953, in oracledb.thin_impl.ThinDbObjectTypeCache.populate_partial_types
File "src/oracledb/impl/thin/dbobject.pyx", line 860, in oracledb.thin_impl.ThinDbObjectTypeCache._populate_type_info
File "src/oracledb/impl/thin/dbobject.pyx", line 834, in oracledb.thin_impl.ThinDbObjectTypeCache._parse_tds
File "src/oracledb/impl/thin/dbobject.pyx", line 782, in oracledb.thin_impl.ThinDbObjectTypeCache._parse_element_type
File "src/oracledb/impl/thin/dbobject.pyx", line 683, in oracledb.thin_impl.ThinDbObjectTypeCache._determine_element_objtype
TypeError: 'NoneType' object is not iterable
Does your application call init_oracle_client()? No
Include a runnable Python script that shows the problem.