首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle Apex:如何始终更新以主键设置为标识的表的表格形式?

Oracle Apex:如何始终更新以主键设置为标识的表的表格形式?
EN

Stack Overflow用户
提问于 2016-08-31 01:47:16
回答 4查看 3.4K关注 0票数 1

我为这个具体的问题挣扎了几个小时。希望有人能帮我解决这个问题。

正如上面描述的问题,我有一个表格形式,它是由一个表构建的,它的主键('ID')被设置为“标识始终”。这成为表格表单的一个问题,因为每当我更改数据并单击“Save”时,Apex都会显示此错误: ORA-32796:无法更新生成的始终标识列。

我尝试了几种解决方法,比如ROWID,但是这个解决方案无法工作,因为我需要将表格表单与其他表中的字段连接起来,以显示其他信息--因此ROWID将不会被保留,不能用作主键。

我还在一个顶点文献中读到:

使用表上的IDENTITY子句会对applications应用程序产生影响。如果INSERT或UPDATE语句中包含了带有始终指定参数的标识列,则数据库将引发错误。“应用程序快速生成器”已得到增强,以允许在“创建表向导”中指定标识子句。Create向导将为带有ALWAYS参数的标识列生成一个“只显示”项。

但我不明白。Apex确实生成了一个额外的列('ID_Display'),但是它并没有改变我的表格形式仍然抛出相同的错误的事实(ORA-32796 )。这个“仅显示”项是如何将我从“无法更新生成的始终标识列”中拯救出来的?

顺便提一句,我正在开发apex.oraclecorp.com,Apex作为一个服务,在这里我不能访问文件或对我的表进行SQL修改。如果您以前遇到过这个问题,并找到了解决方案,请让我知道--谢谢!

最高版本为5.0.4。

编辑:

对不起,我刚刚意识到在Apex中有执行SQL操作的。有人知道如何将表的标识从始终更改为默认吗?

EN

回答 4

Stack Overflow用户

发布于 2017-02-21 01:00:15

因此,我确信这更多地是一种解决办法,而不是对问题和解决方案的实际理解,但在向导中,我发现:

当您在向导设置中的“窗体属性”中时,如下所示:

Primarky键类型:选择Primark键列(S)主键列:‘您的列’主键列:(我在这里没有任何东西可输入)主键源类型:‘现有触发器’(这似乎允许标识列在我正在处理的表/表单上执行它的操作)。我遇到了同样的问题,我会把这个改为“现有序列”。

如果你想明白的话,我很想知道细节。

需要更多的阅读,但这是.

票数 0
EN

Stack Overflow用户

发布于 2018-01-11 14:36:29

下面使用可编辑的交互式网格为我解决了ORA-32796插入问题。我认为表格形式也是一样的。

  1. 转到页面设计器中的页面。
  2. 单击“处理”,或单击“组件视图”,然后单击“页面处理”下的流程。对于可编辑的交互式网格,它是“保存交互式网格数据”的过程。
  3. 单击属性中“插入”后的“返回主键”部分的“是”。
  4. 单击“保存/运行”。
票数 0
EN

Stack Overflow用户

发布于 2019-01-03 19:11:08

代码语言:javascript
运行
复制
ALTER TABLE t MODIFY c GENERATED BY DEFAULT as IDENTITY; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39239516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档