Oracle APEX 21.1数据加载定义如何设置列默认值?
Oracle APEX 21.1 批量上传外键默认值设置步骤
以下两种场景对应不同的批量上传实现方式,按需选择操作即可:
场景1:使用APEX内置「数据加载定义」生成的批量上传功能
- 进入应用的「共享组件」→「数据加载定义」,找到当前页面绑定的加载定义,点击编辑
- 切换到「转换规则」标签页,点击「添加规则」
- 规则类型选择
PL/SQL 表达式,目标列选择你需要设置默认值的外键列,表达式填:PX_ID,注意替换为你实际的页面项名称 - 规则应用时机选择「加载前」,可勾选「仅当目标列值为空时应用」(无需覆盖用户主动上传的该列值时勾选)
- 保存数据加载定义,回到数据加载页面,编辑页面属性,将PX_ID加入「要提交的页面项」列表,避免加载时无法读取会话值
场景2:自定义批量上传(自行解析CSV/Excel插入数据)
如果是自己写PL/SQL逻辑处理上传文件,直接在插入逻辑里给外键列指定页面项值即可,两种常见写法参考:
单条循环插入示例
INSERT INTO 你的目标表名 (外键列名, 业务列1, 业务列2, ...) VALUES (:PX_ID, :UPLOAD_COL1, :UPLOAD_COL2, ...);
用APEX_DATA_PARSER批量插入示例
INSERT INTO 你的目标表名 (外键列名, 业务列1, 业务列2) SELECT :PX_ID, col001, col002 FROM TABLE( APEX_DATA_PARSER.PARSE( p_content => :PXX_UPLOAD_FILE_BLOB, p_file_name => :PXX_UPLOAD_FILE_NAME, p_skip_rows => 1 ) );
测试验证方法:给PX_ID赋值后上传不带外键列值的文件,查询目标表新增行,确认外键列值和PX_ID的值一致即为设置成功。
内容的提问来源于stack exchange,提问作者Goku
相关产品推荐
相关产品推荐

