如何在 Oracle APEX 中使用弹出式 LOV 插入多个值?
How to insert multiple values with popup LOV in Oracle APEX?
我想找到一种在 link table 中插入多个值的方法,为此我使用弹出式 LOV 项目,使用该项目用户可以选择多个值。我想将该值插入 link table.
我试过
INSERT INTO LINK_TABLE (FK_1, FK_2)
VALUES (:P2_POPUP, :P2_RECORD2);
当我尝试插入多个值时,我得到 ORA-01722: invalid number
我想
P2_POPUP
包含单个值,而
P2_RECORD2
包含用户选择的一个或多个值
- 这意味着 Apex 将它们存储为以冒号分隔的值,这 - 而且...
- ... 意味着你必须将它拆分成行
例如:TEMP
CTE“模拟”P2_POPUP
(1
) 和 P2_RECORD2
(10:30:40
) 包含的值。从第 3 行到第 6 行的查询从中创建了几行:
SQL> with temp (p2_popup, p2_record2) as
2 (select 1, '10:30:40' from dual)
3 select p2_popup,
4 regexp_substr(p2_record2, '[^:]+', 1, level) p2_rec
5 from temp
6 connect by level <= regexp_count(p2_record2, ':') + 1;
P2_POPUP P2_REC
---------- --------------------------------
1 10
1 30
1 40
SQL>
这意味着您的代码将如下所示:
insert into link_table (fk_1, fk_2)
select :P2_POPUP,
regexp_substr(:P2_RECORD2, '[^:]+', 1, level) p2_rec
from dual
connect by level <= regexp_count(:P2_RECORD2, ':') + 1;
我想找到一种在 link table 中插入多个值的方法,为此我使用弹出式 LOV 项目,使用该项目用户可以选择多个值。我想将该值插入 link table.
我试过
INSERT INTO LINK_TABLE (FK_1, FK_2)
VALUES (:P2_POPUP, :P2_RECORD2);
当我尝试插入多个值时,我得到 ORA-01722: invalid number
我想
P2_POPUP
包含单个值,而P2_RECORD2
包含用户选择的一个或多个值- 这意味着 Apex 将它们存储为以冒号分隔的值,这 - 而且...
- ... 意味着你必须将它拆分成行
例如:TEMP
CTE“模拟”P2_POPUP
(1
) 和 P2_RECORD2
(10:30:40
) 包含的值。从第 3 行到第 6 行的查询从中创建了几行:
SQL> with temp (p2_popup, p2_record2) as
2 (select 1, '10:30:40' from dual)
3 select p2_popup,
4 regexp_substr(p2_record2, '[^:]+', 1, level) p2_rec
5 from temp
6 connect by level <= regexp_count(p2_record2, ':') + 1;
P2_POPUP P2_REC
---------- --------------------------------
1 10
1 30
1 40
SQL>
这意味着您的代码将如下所示:
insert into link_table (fk_1, fk_2)
select :P2_POPUP,
regexp_substr(:P2_RECORD2, '[^:]+', 1, level) p2_rec
from dual
connect by level <= regexp_count(:P2_RECORD2, ':') + 1;