03 技术太卷我学APEX-关于blob数据类型的使用
0 Oracle 的blob类型
- BLOB
BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节。
通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。 - CLOB
CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节
像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。
1 先看表结构
CREATE TABLE "APEX_LEARN"
( "P_ID" NUMBER(17,0) NOT NULL ENABLE,
"K_CLASS" VARCHAR2(52),
"K_SUBCLASS" VARCHAR2(52),
"S_TITLE" VARCHAR2(52),
"KEY_WORD" VARCHAR2(52),
"S_TEXT" VARCHAR2(521),
"B_FILE" BLOB,
"B_FILE_NAME" VARCHAR2(52),
"B_FILE_MIME_TYPE" VARCHAR2(52),*
"S_NOTE" VARCHAR2(521),
"F_USER" VARCHAR2(17),
"DATE_TIME" DATE,
CONSTRAINT "APEX_LEARN_PK" PRIMARY KEY ("P_ID")
USING INDEX ENABLE
)
其中:
- B_FILE 为blob类型
- B_FILE_NAME 用来保存文件名
- B_FILE_MIME_TYPE 用来保存文件的mime_type类型
2 创建增删改查交互式报表页面
如果你选从表创建,如果有blob字段也会自动转为SQL查询
select "P_ID","K_CLASS","K_SUBCLASS","S_TITLE","KEY_WORD","S_TEXT",
sys.dbms_lob.getlength("B_FILE")"B_FILE","S_NOTE","F_USER","DATE_TIME",
"B_FILE_NAME","B_FILE_MIME_TYPE"
from "APEX_LEARN"
order by "K_CLASS","K_SUBCLASS"
2.1 列表页面的设置
BLOB属性都是自动配置的,只有 mime类型列、文件名列需要绑定一下,不绑定文件名下载或查看时没有文件名,默认是你上传的文件名。mime类型也是自动的。
2.2 表单设置页类似
除了mime类型和文件名列需要手工绑定其它都是自动的。
3 看看最后的页面效果
3.1 交互式报表-列表
3.2 交互式报表-表单
【下载】按钮可下载存在数据的文件。