浏览多个字段的值并将它们插入同一列
Browse the values of multiple fields and insert them into the same column
我正在尝试使用重复的行为我的 oracle apex 应用程序创建一个功能。假设我有一辆 车辆 table.
CREATE TABLE vehicles
(
brand VARCHAR2(50),
model VARCHAR2(50),
comment VARCHAR2(50)
);
我首先创建了一个当前正在运行的 PL/SQL 过程,该过程将用户选择的行复制 n 次。例如,如果用户有5辆相同的车辆,他可以输入“5”,应用程序将插入5次相同的车辆,当然主键不同。
我想要实现的是让用户可以在每一行上添加自定义评论。例如,他有 5 辆相同的汽车,每辆都有不同的评论。
这是用户插入汽车时我的程序代码:
FOR i IN 1..:P27_NUMBER_VEHICLES -- this represents the numbers of cars the users want to insert
LOOP
INSERT INTO vehicles(brand, model)
VALUES(:P27_BRAND, :P27_MODEL);
END LOOP;
END;
这会创建 5 辆相同的车辆,但我希望用户能够在每辆车上添加 5 条不同的评论,这里是 an example of my insertion form,评论字段会根据用户想要的数字动态显示插入
我现在尝试用评论更新我的程序,我试图给出一个可以由程序动态更改的名称,我将其命名为:P27_COMMENT_0 / 1 / 2 / 3 / 4 / 5. 所以我尝试添加:P27_COMMENT_ || i(循环的索引)尝试自动浏览不同的字段,代码如下:
BEGIN
FOR i IN 1..:P27_NUMBER_VEHICLES
LOOP
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, :P27_COMM_ || i);
END LOOP;
END;
不幸的是,这不起作用。
我希望你们能为我提供解决方案。总而言之,我试图用循环复制一行,但仍然能够为特定列上的每一行添加自定义条目。
不要犹豫,询问更多细节,因为我可能忘记了一些重要的事情。
提前谢谢你,
托马斯
更新
这是它的显示方式,我不能在上面写任何东西:
个人认为比较好用APEX_ITEM,如下:
在您的项目后添加交互式报告区域或子区域。
将 IR SQL 查询设置为:
SELECT
APEX_ITEM.TEXT(
p_idx => 1,
p_attributes=> 'placeholder="Comment '|| LEVEL ||'"') AS Name
FROM dual
CONNECT BY LEVEL <= TO_NUMBER (:P16_NUM)
;
:P16_NUM
是一个包含要显示的项目数的项目。不要忘记将其添加到 IR 的源代码部分的要提交的页面项目。
添加提交按钮。
在 Processing 中创建一个新进程并迭代项目:
BEGIN
apex_debug.enable;
for i in apex_application.g_f01.FIRST..apex_application.g_f01.LAST loop
apex_debug.info('####### Comment '||i||' '||apex_application.g_f01(i));
end loop;
END;
- 最后你的
INSERT
:
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, apex_application.g_f01(i));
- 当您检查一切正常时,更改流程代码:
BEGIN
for i in apex_application.g_f01.FIRST..apex_application.g_f01.LAST loop
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, apex_application.g_f01(i));
end loop;
END;
编辑
- Select 输入所在的列,在右侧找到 Security 部分并禁用 Escape special characters。
我正在尝试使用重复的行为我的 oracle apex 应用程序创建一个功能。假设我有一辆 车辆 table.
CREATE TABLE vehicles
(
brand VARCHAR2(50),
model VARCHAR2(50),
comment VARCHAR2(50)
);
我首先创建了一个当前正在运行的 PL/SQL 过程,该过程将用户选择的行复制 n 次。例如,如果用户有5辆相同的车辆,他可以输入“5”,应用程序将插入5次相同的车辆,当然主键不同。
我想要实现的是让用户可以在每一行上添加自定义评论。例如,他有 5 辆相同的汽车,每辆都有不同的评论。
这是用户插入汽车时我的程序代码:
FOR i IN 1..:P27_NUMBER_VEHICLES -- this represents the numbers of cars the users want to insert
LOOP
INSERT INTO vehicles(brand, model)
VALUES(:P27_BRAND, :P27_MODEL);
END LOOP;
END;
这会创建 5 辆相同的车辆,但我希望用户能够在每辆车上添加 5 条不同的评论,这里是 an example of my insertion form,评论字段会根据用户想要的数字动态显示插入
我现在尝试用评论更新我的程序,我试图给出一个可以由程序动态更改的名称,我将其命名为:P27_COMMENT_0 / 1 / 2 / 3 / 4 / 5. 所以我尝试添加:P27_COMMENT_ || i(循环的索引)尝试自动浏览不同的字段,代码如下:
BEGIN
FOR i IN 1..:P27_NUMBER_VEHICLES
LOOP
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, :P27_COMM_ || i);
END LOOP;
END;
不幸的是,这不起作用。
我希望你们能为我提供解决方案。总而言之,我试图用循环复制一行,但仍然能够为特定列上的每一行添加自定义条目。
不要犹豫,询问更多细节,因为我可能忘记了一些重要的事情。
提前谢谢你,
托马斯
更新
这是它的显示方式,我不能在上面写任何东西:
个人认为比较好用APEX_ITEM,如下:
在您的项目后添加交互式报告区域或子区域。
将 IR SQL 查询设置为:
SELECT
APEX_ITEM.TEXT(
p_idx => 1,
p_attributes=> 'placeholder="Comment '|| LEVEL ||'"') AS Name
FROM dual
CONNECT BY LEVEL <= TO_NUMBER (:P16_NUM)
;
:P16_NUM
是一个包含要显示的项目数的项目。不要忘记将其添加到 IR 的源代码部分的要提交的页面项目。
添加提交按钮。
在 Processing 中创建一个新进程并迭代项目:
BEGIN
apex_debug.enable;
for i in apex_application.g_f01.FIRST..apex_application.g_f01.LAST loop
apex_debug.info('####### Comment '||i||' '||apex_application.g_f01(i));
end loop;
END;
- 最后你的
INSERT
:
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, apex_application.g_f01(i));
- 当您检查一切正常时,更改流程代码:
BEGIN
for i in apex_application.g_f01.FIRST..apex_application.g_f01.LAST loop
INSERT INTO vehicles(brand, model, comment)
VALUES(:P27_BRAND, :P27_MODEL, apex_application.g_f01(i));
end loop;
END;
编辑
- Select 输入所在的列,在右侧找到 Security 部分并禁用 Escape special characters。