AsyncCursor cannot bind long string to clob parameter · Issue #441 · oracle/python-oracledb (original) (raw)
platform.platform: Windows-10-10.0.22631-SP0
sys.maxsize > 2**32: True
platform.python_version: 3.9.13
oracledb-2.5.1
RuntimeWarning: coroutine 'AsyncConnection.createlob' was never awaited
await self._impl.execute(self)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
File "XXX\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "XXX\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\__main__.py", line 71, in <module>
cli.main()
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 501, in main
run()
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy/..\debugpy\server\cli.py", line 351, in run_file
runpy.run_path(target, run_name="__main__")
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 310, in run_path
return _run_module_code(code, init_globals, run_name, pkg_name=pkg_name, script_name=fname)
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 127, in _run_module_code
_run_code(code, mod_globals, init_globals, mod_name, mod_spec, pkg_name, script_name)
File "c:\program files\microsoft visual studio\2022\community\common7\ide\extensions\microsoft\python\core\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 118, in _run_code
exec(code, run_globals)
File "YYYY\Oracledb_Issies.py", line 18, in <module>
asyncio.run(main())
File "XXX\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "XXX\lib\asyncio\base_events.py", line 647, in run_until_complete
return future.result()
File "YYYY\Oracledb_Issies.py", line 14, in main
await cur.execute(""" begin test1(p_prm => :clobprm); end;""",
File "XXX\lib\site-packages\oracledb\cursor.py", line 964, in execute
await self._impl.execute(self)
File "src\\oracledb\\impl/thin/cursor.pyx", line 280, in execute
File "src\\oracledb\\impl/thin/cursor.pyx", line 124, in oracledb.thin_impl.BaseThinCursorImpl._preprocess_execute
File "src\\oracledb\\impl/base/cursor.pyx", line 352, in oracledb.base_impl.BaseCursorImpl._perform_binds
File "src\\oracledb\\impl/thin/var.pyx", line 78, in oracledb.thin_impl.ThinVarImpl._bind
AttributeError: 'coroutine' object has no attribute 'write'
create or replace procedure test1(p_prm clob) as
begin
null;
end test1;
import oracledb
import asyncio
async def main():
pool = oracledb.create_pool_async(dsn = "XXX")
con = await pool.acquire()
async with con.cursor() as cur:
await cur.execute(""" begin test1(p_prm => :clobprm); end;""",
clobprm = '123'*20000)
asyncio.run(main())