据我了解,您使用值列表作为复选框的来源。假设您在那里有以下值:
return value display value
----------------------------
123 andAND
456 Dibya
789 Anshul
321 aafirst
555 Anuj
当您选择多个值时,APEX 会将它们的返回值放入一个字符串中,并用: 分隔它们。因此,对于屏幕截图中的情况,项目P12_NEW 中的值将是123:555。要拆分此值,您可以使用以下查询:
select regexp_substr(:P12_NEW, '[^:]+', 1, level) values
from dual
connect by regexp_substr(:P12_NEW, '[^:]+', 1, level) is not null
结果将是:
values
------
123
555
接下来,您需要将这些值放入表usr_amt(假设有user_id 和amount 列,并将金额输入到项目P12_AMOUNT):
merge into usr_amt t
using (select regexp_substr(:P12_NEW, '[^:]+', 1, level) user_id
from dual
connect by regexp_substr(:P12_NEW, '[^:]+', 1, level) is not null
) n on (n.user_id = t.user_id)
when matched then update
set t.amount = :P12_AMOUNT
when not matched then insert (user_id, amount)
values (n.user_id, :P12_AMOUNT)
此查询将搜索表中选择的每个 user_id,如果用户在那里显示,则将相应的值更新为项目 :P12_AMOUNT 的值,如果不存在 - 插入一行 user_id 和价值。