Oracle APEX - 存储颜色选择器值

问题描述 投票:0回答:1

我正在尝试将颜色选择器值保存到列中。

用户可以为仪表板选择颜色,如下所示:

我为“保存”按钮创建了一个动态操作,其操作是“提交页面”。我还在提交后创建了流程来更新表。我这样设置 PL/SQL 代码:

UPDATE USR 
SET SETTING_PREF = '{"attention": &P7_ATTENTION., "property": &P7_PROPERTY., "not_reported": &P7_NOT_REPORTED., "off_property": &P7_OFF_PROPERTY., "carts_in_use": &P7_CARTS_IN_USE., "carts_idle": &P7_CARTS_IDLE., "show_item_num": &P7_SHOW_ITEM_NUM., "language": &P7_LANGUAGE.}'
WHERE EMAIL = :APP_USER;

但不知何故,这些值似乎没有保存到 SETTING_PREF 列。 单击“保存”按钮后没有错误消息,因此我假设我没有从颜色选择器部分检索正确的值。 谁能告诉我如何解决这个问题?

oracle-apex
1个回答
0
投票

&ITEM.
表示法不能在 pl/sql 中使用。在 pl/sql 中使用绑定变量表示法 (
:ITEM
)。将语句更改为(由您完成json):

UPDATE USR 
SET SETTING_PREF = apex_string.format('{"attention": %0,"property": %1, "not_reported": %2}', :P7_ATTENTION, :P7_PROPERTY, :P7_NOT_REPORTED)
WHERE EMAIL = :APP_USER;

不需要 api

apex_string.format
,但它避免了将长字符串与所有绑定变量连接起来。

© www.soinside.com 2019 - 2024. All rights reserved.