为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8
【操作系统】:Centos 7.7
【CPU】:
【问题描述】*:SQLAlchemy2.0.0,按照步骤安装依赖,示例代码运行报错。
环境信息:
(1)python版本:3.8.1
(2)SQLAlchemy版本:2.0.0
(3)sqlalchemy-dm版本:2.0.0
(4)dmPython版本:2.4.8
(5)达梦数据库版本:dm8
示例代码:https://eco.dameng.com/eco-file-server/file/eco/download/20221223102449X4O5XHXSW4OR04U7VL
报错信息:
查询所有结果:
Traceback (most recent call last):
File "dmSQLAlchemy.py", line 80, in <module>
main()
File "dmSQLAlchemy.py", line 16, in main
fun_insert(DBSession)
File "dmSQLAlchemy.py", line 58, in fun_insert
session.commit()
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1903, in commit
trans.commit(_to_root=True)
File "<string>", line 2, in commit
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1218, in commit
self._prepare_impl()
File "<string>", line 2, in _prepare_impl
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
ret_value = fn(self, *arg, **kw)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1193, in _prepare_impl
self.session.flush()
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4140, in flush
self._flush(objects)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4277, in _flush
transaction.rollback(_capture_exception=True)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 4237, in _flush
flush_context.execute()
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 467, in execute
rec.execute(self)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py", line 644, in execute
util.preloaded.orm_persistence.save_obj(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 93, in save_obj
_emit_insert_statements(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py", line 1188, in _emit_insert_statements
result = connection.execute(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1414, in execute
return meth(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 489, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1630, in _execute_clauseelement
compiled_sql, extracted_params, cache_hit = elem._compile_w_cache(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 656, in _compile_w_cache
compiled_sql = self._compiler(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 289, in _compiler
return dialect.statement_compiler(dialect, self, **kw)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 357, in __init__
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 1262, in __init__
Compiled.__init__(self, dialect, statement, **kwargs)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 703, in __init__
self.string = self.process(self.statement, **compile_kwargs)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 748, in process
return obj._compiler_dispatch(self, **kwargs)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/visitors.py", line 143, in _compiler_dispatch
return meth(self, **kw) # type: ignore # noqa: E501
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 935, in visit_insert
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 5262, in visit_insert
crud_params_struct = crud._get_crud_params(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 294, in _get_crud_params
_scan_cols(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 616, in _scan_cols
_append_param_parameter(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 792, in _append_param_parameter
value = _create_bind_param(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/crud.py", line 398, in _create_bind_param
return bindparam._compiler_dispatch(compiler, **kw)
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/visitors.py", line 143, in _compiler_dispatch
return meth(self, **kw) # type: ignore # noqa: E501
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 825, in visit_bindparam
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy/sql/compiler.py", line 3525, in visit_bindparam
ret = self.bindparam_string(
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/dmPython.py", line 30, in bindparam_string
File "/usr/local/python3/lib/python3.8/site-packages/sqlalchemy_dm-2.0.0-py3.8.egg/sqlalchemy_dm/base.py", line 669, in bindparam_string
TypeError: bindparam_string() got multiple values for argument 'bindparam_type'
早期版本对于部分类型的绑定处理可能存在一些问题,可以尝试使用8.1.3.62pack21版本驱动和方言,该部分逻辑已经进行了调整
同样这个错误,不知道怎么解决