oracle-apex - 从 APEX 数据上传向导的下拉列表中填充列
问题描述
我在 APEX 数据加载向导的数据加载源页面上添加了一个下拉字段 P1_TABLE_NAME,用户可以在其中选择一个值。该值应填充到数据库中的 TABLE_NAME 列中。TABLE_NAME 也被定义为 Oracle Apex 中的查找值。在粘贴区域,用户将输入有关表格的各种信息。所以顺序应该如下:
用户在 P1_TABLE_NAME 下拉菜单中选择值。
粘贴一些东西到粘贴区域。
点击下一步。
Data/Table Mapping 页面中显示了两列,第一列包含粘贴到粘贴区域的信息。
第二列包含在 P1_TABLE_NAME 下拉菜单中选择的值。
理想情况下,第二列包含该表的查找值,例如用户输入 Blah 和数据/表映射的第二列中的值。也许如果 APEX 可以配置为在与“SPREADSHEET_CONTENT”中的其他值相同的选择中提取额外值
我使用了以下教程:http ://www.jrweth.com/oracle-apex-data-loader-part-1-adding-custom-columns/
创建了额外的项目 P1_TABLE_NAME 但数据/表映射上的表单仅显示输入粘贴区域的值。
我使用的代码:
FOR UPLOAD_ROW IN (SELECT SEQ_ID FROM APEX_COLLECTIONS WHERE COLLECTION_NAME = 'SPREADSHEET_CONTENT') 循环
APEX_COLLECTION.UPDATE_MEMBER_ATTRIBUTE (
p_collection_name => 'SPREADSHEET_CONTENT',
p_seq => UPLOAD_ROW.SEQ_ID,
p_attr_number => '2',
p_attr_value => : P1_TABLE_NAME);
结束循环;
我还尝试过使用 APEX 数据验证 SQL 查询。希望也许我可以更新查询以包含其他字段,然后这些字段将包含在随后的数据/表映射页面上显示的列列表中。
选择 n001 作为 row_num,wwv_flow_lang.system_message('DATA_LOAD.' || c049) 作为操作,c001,c002,c003,c004,c005,c006,c007,c008,c009,c010,c011,c012,c013,c014,c015, c016,c017,c018,c019,c020,c021,c022,c023,c024,c025,c026,c027,c028,c029,c030,c031,c032,c033,c034,c035,c036,c037,c038,c040,c041, c042,c043,c044,c045,:P1_TABLE_NAME
从 apex_collections where collection_name = 'LOAD_CONTENT' and c049 in ('INSERT','UPDATE', 'FAILED') order by seq_id
解决方案
APEX 数据加载器只能加载到单个目标表中。数据/表映射页面上显示的列列表来自数据加载定义,该定义为单个表定义一次。
我克服此限制的一种方法是创建一个包含所有表中所有列的临时表,然后在加载数据后编写自定义 PL/SQL 以将其移动到用户选择的目标表。
推荐阅读
- c# - 如何让 People.GetBatchGet() 返回特定尺寸的照片
- javascript - 添加相同部分jQuery后如何用数字增加名称属性
- java - Java 8 - 类与其功能之一之间的映射
- c# - 是否可以在 C# 中定义一个应用其他属性的属性?
- amazon-web-services - 如何确保 SQS FIFO 在相应的死信队列中有消息时被阻塞
- c++ - 通过类模板的特化获取类类型的名称
- c# - UWP C# 在 ScrollViewer 中对项目进行排序
- talend - Jenkins 无法捕获 Talend 构建豁免退出代码
- excel - 如何简化/使包含重复案例和语句的代码更好?
- java - 我的数据库引用未显示在树中