首页 > 解决方案 > 如何解决 Oracle Apex 中的无效列错误?

问题描述

我正在尝试添加一个 plsql 脚本,该脚本将在表单中按下“应用更改”按钮后更新事件。所以我添加了一个新的“动态操作”来单击该按钮的事件,将操作设置为“执行 PL/SQL 代码”并在“PL/SQL 代码”部分编写以下脚本

BEGIN
UPDATE EVENT
SET START_DATE = :P53_START_DATE,
END_DATE = :P53_END_DATE,
START_TIME = :P53_START_TIME,
END_TIME = :P53_END_TIME,
DESCRIPTION = :P53_DESCRIPTION,
WHERE EVENT_ID = :P53_EVENT_ID;
END;
/

但是当我点击“应用更改”时,我不断收到此错误

在此处输入图像描述

我使用“P53_.....”从字段中选择值的方式有什么问题吗?

在此处输入图像描述

我该如何解决这个问题?

标签: sqloracleplsqloracle-apex

解决方案


这段代码有几个问题:

BEGIN
UPDATE EVENT
SET START_DATE = :P53_START_DATE, << suggest using TO_DATE(:P53_START_DATE,'<your date format mask>') instead
END_DATE = :P53_END_DATE, << suggest using TO_DATE(:P53_END_DATE,'<your date format mask>') instead
START_TIME = :P53_START_TIME,
END_TIME = :P53_END_TIME,
DESCRIPTION = :P53_DESCRIPTION, << this comma makes statement fail
WHERE EVENT_ID = :P53_EVENT_ID; 
END;
/ << trailing slash not needed

但正如我在评论中所说,你确定你需要为此采取动态行动吗?在页面提交上执行任何操作的“顶级方式”是在提交时在页面进程中执行 pl/sql 代码。如果需要在不提交案例的情况下执行代码,则可以使用动态操作。这只是一个评论,与您的实际问题无关。

——柯恩


推荐阅读