`
waking
  • 浏览: 7196 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Oracle Apex 实用笔记系列 2 - 文件上传管理

 
阅读更多

1. 页面设计

页面A有若干region, 其中一个region用于文件列表管理(包括显示,下载,删除),如图A。在页面A有一button,点击它会调用页面B,页面B负责文件上传,如图B。

图A


图B


2. 数据库表设计

File
FILE_ID Number,
FILE_DESC Varchar2(256),
CONTENT Blob,
mime_type varchar2(256),
char_set varchar2(256),
last_update date,
FILE_NAME varchar2(256)


3. Apex实现

3.1 在页面A获取上传文件列表

可创建一个classic report region, region source是
select f.FILE_ID,
f.FILE_DESC,
f.FILE_NAME,
dbms_lob.getlength("FILE_CONTENT") as FILE_CONTENT,
MIME_TYPE,
CHAR_SET,
LAST_UPDATE,
'<a href="javascript:$s(''P530_DELETE_FILE'', ''' || F.FILE_ID || ''');">Delete</a>' as DELETE_FILE
from FILE f

注意:
由于BLOB不能直接映射成页面元素,所以适用dbms_lob.getlength函数得到blob的大小作为占位符。

在报告属性(Report Attribute)标签,点击FILE_CONTENT进入该cloumn的设置:
1. Number/Date Format选择Blob;
2. Format Mask:Download;
3. Blob Table: FILE
4. Blob Column: FILE_CONTENT
5. Primary Key Column 1: FILE_ID;
6. Mimetype Column: MIME_TYPE;
7. FIlename Column:FILE_NAME;
8. Last Updated Column: LAST_UPDATE;
9. Character Set Column: CHAR_SET;
10. Download Text: Download

3.2 页面B上传文件

使用页面B作为一个单独页面上传的一个原因是Apex无法在一个页面创建多个Form on a Table,换句话说,Apex的一个页面只能创建一个Form on a Table。创建Form on a Table页面的好处是可以由Apex帮助我们管理表格的插入,更新的细节。所以页面B的创建只要跟着Apex创建Form on a Table向导一步一步走就可以了。

在修改FILE_CONTENT对应的item时,
display as: 选File Brows
在它的setting标签中,
1. Storage Type:Blob column specified in Item Source attribute;
2. Mimetype Column: MIME_TYPE;
3. FIlename Column:FILE_NAME;
4. Last Updated Column: LAST_UPDATE;
5. Character Set Column: CHAR_SET;


在Storage Type中,另一个选项是Table WWV_FLOW_FILES,这是Apex内置的一个用于文件上传的表。这是Apex老版本的做法,为了向后兼容而保留。如果选择这个选项,不同application的所有文件上传功能都会发到这个表,笔者认为这样文件管理会有些混乱,倾向建立自己的数据库表来管理。



分享到:
评论

相关推荐

    Apex学习笔记-环境搭建

    Oracle Apex 5.1.4的环境搭建文档,参考了官方的文档。

    Oracle课堂笔记(很全很详细的Oracle笔记)

    根据提供的信息,我们可以总结出以下关于Oracle的相关知识点: ### Oracle基础知识与分类 #### DDL (Data Definition Language) 数据定义语言 - **DDL** 主要用于创建、修改或删除数据库对象,如表、索引等。 ###...

    Oracle_DBA_java.rar_oracle_oracle 笔记

    2. **Oracle数据库管理** - 用户与权限管理:创建、删除用户,分配权限,理解角色的概念。 - 系统参数调整:通过ALTER SYSTEM命令调整初始化参数以优化数据库性能。 - 索引管理:创建、监控和优化B树、位图和函数...

    Oracle Application Express 5.1 Basics & Beyond

    Oracle APEX 5.1版本是该系列的一个重要里程碑,提供了许多新功能和改进,使开发者能够更高效地创建可在桌面、笔记本电脑、平板电脑和智能手机上访问的应用程序。 本书《Oracle Application Express 5.1基础知识与...

    Oracle学习资料doc

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它以其强大的数据处理能力和高稳定性而闻名。本"Oracle学习资料doc"压缩包包含了丰富的Oracle学习文档,旨在帮助初学者和经验丰富的DBA深入理解Oracle...

    oracle学习笔记

    还拥有一个庞大的生态系统,包括Oracle Application Express(APEX)、Oracle GoldenGate、Oracle Data Integrator(ODI)、Oracle Database Appliance等一系列产品和服务,为用户提供全面的数据管理和应用开发解决...

    oracle培训18天笔记

    2. 表空间与数据文件:学习如何创建和管理表空间,以及数据文件的分配与扩展。 3. 用户与权限管理:设置用户账户,分配权限,理解角色和默认权限。 第八天至第十天:索引与性能优化 1. 索引类型:B树索引、位图索引...

    Oracle学习资料(很全面)

    如数据仓库建模、Oracle Data Guard用于高可用性、Real Application Clusters (RAC) 用于集群环境、Oracle Enterprise Manager (OEM) 这样的管理和监控工具,以及Oracle的应用开发框架如Apex和JDeveloper。...

    orcle学习笔记

    2. 数据文件、控制文件、重做日志文件:这些文件是Oracle数据库的重要组成部分,分别存储数据、记录数据库的更改和保证事务的恢复。 四、Oracle安全管理 1. 用户与权限:在Oracle中,通过创建用户并分配权限来控制...

    materiais-pos-graduacao:Minas Gerais天主教大学(PUC-MG)使用Python 3以及关系和非关系数据库(Oracle,MongoDB,Redis,Neo4J)的脚本和笔记本存储库,用于数据科学和大数据的毕业后研究)

    SQL:Oracle数据库(Apex) NoSQL:MongoDB NoSQL:Redis NoSQL:Neo4j Tableau桌面 Java 11 阿帕奇火花 Hadoop Docker和Docker-Compose 课程科目 01-关系和非关系数据库 02-数据科学编程语言 03-数据可视化 ...

Global site tag (gtag.js) - Google Analytics