如何编写从复选框中获取值并将其作为不同列插入 table 的脚本?
How to write the script that takes values from a checkbox and inserts it as different columns in a table?
我有一个用于在 Oracle Apex 中创建新事件的表单。使用该表格,我可以很好地创建新事件。但在该表格的底部是一个复选框,用户可以在其中指定参与组织活动的俱乐部。
您可以在上图底部看到的复选框的值列表设置为 sql 查询,其中 selects 'club_name' 和 'club_id' 来自 'club' table.
现在我要做的是在成功创建事件后,需要将具有新创建事件 ID 的选中俱乐部的 club_id 插入到 'club_event' 连接点 table 将每个事件与其组织的俱乐部联系起来。所以我需要创建一个页面进程,将记录插入连接 table。我尝试在 select "Processing".
之后出现的页面设计器的 "Server-side Condition" 部分编写脚本
DECLARE
type idarray IS VARRAY(10) OF VARCHAR2(10);
ids idarray;
BEGIN
ids := apex_string.split(:P72_CLUBS, ':');
FOR id IN ids LOOP
INSERT INTO club_event
VALUES(id, P72_EVENT_ID);
END LOOP;
END;
这就是用页面进程做我想做的事情的方式吗?我的脚本有什么问题,我该如何解决?
"server side condition" 是顶点组件上的一个属性,用于确定是否需要执行该组件。在您的情况下,您已经有了 "When button pressed" 条件,因此您可以将 "Type" 留空。
页面进程中需要执行的代码应该放在"Source"中,如下所示。
你的代码没有执行 - 我建议你在 sql workshop 中尝试找出问题所在(多个错误,我在这里不做详细说明)。我通常使用这样的东西:
DECLARE
l_ids apex_t_varchar2;
BEGIN
l_ids := apex_string.split(:P72_CLUBS, ':');
FOR i IN 1 .. l_ids.COUNT LOOP
INSERT INTO club_event
VALUES(l_ids(i), :P72_EVENT_ID);
END LOOP;
END;
/
我有一个用于在 Oracle Apex 中创建新事件的表单。使用该表格,我可以很好地创建新事件。但在该表格的底部是一个复选框,用户可以在其中指定参与组织活动的俱乐部。
您可以在上图底部看到的复选框的值列表设置为 sql 查询,其中 selects 'club_name' 和 'club_id' 来自 'club' table.
现在我要做的是在成功创建事件后,需要将具有新创建事件 ID 的选中俱乐部的 club_id 插入到 'club_event' 连接点 table 将每个事件与其组织的俱乐部联系起来。所以我需要创建一个页面进程,将记录插入连接 table。我尝试在 select "Processing".
之后出现的页面设计器的 "Server-side Condition" 部分编写脚本DECLARE
type idarray IS VARRAY(10) OF VARCHAR2(10);
ids idarray;
BEGIN
ids := apex_string.split(:P72_CLUBS, ':');
FOR id IN ids LOOP
INSERT INTO club_event
VALUES(id, P72_EVENT_ID);
END LOOP;
END;
这就是用页面进程做我想做的事情的方式吗?我的脚本有什么问题,我该如何解决?
"server side condition" 是顶点组件上的一个属性,用于确定是否需要执行该组件。在您的情况下,您已经有了 "When button pressed" 条件,因此您可以将 "Type" 留空。 页面进程中需要执行的代码应该放在"Source"中,如下所示。
你的代码没有执行 - 我建议你在 sql workshop 中尝试找出问题所在(多个错误,我在这里不做详细说明)。我通常使用这样的东西:
DECLARE
l_ids apex_t_varchar2;
BEGIN
l_ids := apex_string.split(:P72_CLUBS, ':');
FOR i IN 1 .. l_ids.COUNT LOOP
INSERT INTO club_event
VALUES(l_ids(i), :P72_EVENT_ID);
END LOOP;
END;
/