hhyo / Archery

SQL 审核查询平台
https://archerydms.com
Apache License 2.0
5.74k stars 1.63k forks source link

sql工单无法同时执行ddl和dml语句 #2676

Open saygoodbay opened 3 weeks ago

saygoodbay commented 3 weeks ago

重现步骤

如果在一个流程中同时提交alter增加字段和update更新该字段信息,alter语句可以检测过,但是update无法检测通过,执行工单时整体都无法执行。 如果是alter增加字段和update分两个工单提交,alter工单和update工单同时提交流程但是alter执行完毕后才执行update等dml语句也是无法执行显示keyerror。只有在alter工单执行后再提交dml语句才能成功执行dml。

AUTO_REVIEW_WRONG设置为3

预期外的结果

这个是两个工单同时提交,但是dml是在ddl之后执行的 企业微信截图_17174660697060 企业微信截图_17174660305181 这个是在ddl执行后提交并执行的工单 企业微信截图_17174661736882

日志文本

'stmt_type' : Traceback (most recent call last):
File "/opt/venv4archery/lib/python3.11/site-packages/django_q/cluster.py", line 432, in worker
res = f(*task["args"], **task["kwargs"])
File "/opt/archery/sql/utils/execute_sql.py", line 44, in execute
return execute_engine.execute_workflow(workflow=workflow_detail)
File "/opt/archery/sql/engines/oracle.py", line 1094, in execute_workflow
sqlitemList = get_exec_sqlitem_list(review_result, workflow.db_name)
File "/opt/archery/sql/utils/sql_utils.py", line 376, in get_exec_sqlitem_list
stmt_type=item["stmt_type"],
~~~~^^^^^^^^^^^^^
KeyError: 'stmt_type'

版本

v1.11.2

部署方式

Docker

是否还有其他可以辅助定位问题的信息?比如数据库版本等

数据库类型: oracle 数据库版本: 11.2.0.4.0

feiazifeiazi commented 1 week ago

好奇怪。 没有oracle环境试不了。 mysql没有这样的问题,我天天一起提交,上一行添加这个字段,下一行修改这个字段值。