我运行了ALTER TABLE
查询,将一些列添加到表中,然后db.commit()
。这没有引起任何错误或警告,但在Oracle SQL开发人员中,新列未显示在SELECT * ...
上。
所以我尝试重新运行ALTER TABLE
,但它提出了
cx_Oracle.DatabaseError: ORA-14411: The DDL cannot be run concurrently with other DDLs
这有点合理(我不能创建已经存在的列)但是当我尝试用值填充新列时,我收到一条消息
SQL Error: ORA-00904: "M0010": invalid ID
00904. 00000 - "%s: invalid identifier"
表示新列已创建不。
有人了解可能会发生什么吗?
更新/已解决我一直试图再次运行查询,在某些时候,事情突然开始起作用(没有明显的原因)。也许处理时间?会很奇怪,因为查询非常轻松。如果它再次发生,我会回到这里。
答案 0 :(得分:1)
首先,您不需要提交,DDL可以有效地提交任何事务。
另一个冲突的DDL已经在运行。
所以看来你的第一个ALTER TABLE语句还没有完成(可能是表太大了,或者其他一些问题)。