我在这个特定问题上苦苦挣扎了好几个小时。希望有人可以帮助我。
正如上面描述的问题,我有一个表格形式,它是从一个表中构建的,它的主键('ID')设置为“始终标识”。这成为表格形式的问题,因为每当我对数据进行更改并单击“保存”时,Apex 都会显示此错误:ORA-32796: cannot update a generated always identity column
我尝试了几种解决方法,例如 ROWID,但此解决方案不起作用,因为我需要将表格形式与其他表中的字段连接以显示其他信息 - 因此 ROWID 不会被保留并且不能用作主键。
我还在Apex 文档中读到:
在表上使用 IDENTITY 子句可能会对 Application Express 应用程序产生影响。如果在 INSERT 或 UPDATE 语句中包含指定了 ALWAYS 参数的 IDENTITY 列,数据库将引发错误。Application Express Builder 已得到增强,允许在创建表向导中指定标识子句。Create Form 向导将为带有 ALWAYS 参数的标识列生成“仅显示”项。
我不明白。Apex 确实生成了一个额外的列('ID_Display'),但它并没有改变我的表格形式仍然抛出相同错误的事实(上面的 ORA-32796)。这个“仅显示”项如何使我免于“无法更新生成的始终标识列”?
附带说明一下,我正在 apex.oraclecorp.com 中开发 Apex 作为服务,我无法访问文件或对我的表进行 SQL 更改。如果您之前遇到过此问题并找到解决方案,请告诉我 - 在此先感谢!
PS Apex 版本是 5.0.4。
编辑:
抱歉,我刚刚意识到 Apex 中有 SQL 命令 UI 可以执行 SQL 操作。任何人都知道如何将表的身份从 ALWAYS 更改为 DEFAULT?