Trafodion LOB大对象

Trafodion支持大对象类型,包括blob和clob,clob(Character Large Object)使用CHAR来保存数据,如保存XML文档,blob(Binary Large Object),二进制大对象,可以存储二进制文件如图片。
注:不建议在LOB字段上创建主键,也不建议在LOB字段上创建索引,一个表可以包含多个LOB字段。

下面例子演示创建带有blob和clob字段的表,

>>cqd traf_blob_as_varchar 'off';

--- SQL operation complete.
>>cqd traf_clob_as_varchar 'off';

--- SQL operation complete.
>>create table test_lob_tbl (a blob, b clob);

--- SQL operation complete.
>>showddl test_lob_tbl;

CREATE TABLE TRAFODION.SEABASE.TEST_LOB_TBL
  (
    A                                BLOB DEFAULT NULL NOT SERIALIZED
  , B                                CLOB DEFAULT NULL NOT SERIALIZED
  )
 ATTRIBUTES ALIGNED FORMAT
;

--- SQL operation complete.

LOB类型相关的函数有:

  • LOBTOSTRING
  • LOBTOFILE
  • LOBTOBUFFER
  • STRINGTOLOB
  • FILETOLOB
  • BUFFERTOLOB

下面演示如何把一个字符串保存到clob中以及如何把一个文件保存到blob中,

>>insert into test_lob_tbl values(filetolob('test.txt'),stringtolob('abcdefg'));

--- 1 row(s) inserted.

现在,让我们来从lob字段中拿出刚刚保存的文件和字符串吧
(注:用extract命令将保存在LOB对象中的文本、图片等二进制文件抽取并保存到对应的文件中)

>>select a from test_lob_tbl;

A
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

LOBH0000000200010452004884911267714619452004885257433198118212355808993728656021"TRAFODION"."SEABASE"
>>extract lobtofile (LOB 'LOBH0000000200010452004884911267714619452004885257433198118212355808993728656021"TRAFODION"."SEABASE"', 'test.txt1');
Success. Targetfile :test.txt1  Length : 8

--- SQL operation complete.

>>select lobtostring(b) from test_lob_tbl;

(EXPR)
-------
abcdefg

下面命令用来查询LOB对象的详细信息,

>>showddl test_lob_tbl,lob details;

CREATE TABLE TRAFODION.SEABASE.TEST_LOB_TBL
  (
    A                                BLOB DEFAULT NULL NOT SERIALIZED
  , B                                CLOB DEFAULT NULL NOT SERIALIZED
  )
 ATTRIBUTES ALIGNED FORMAT
;

LOB Metadata
============

CREATE TABLE TRAFODION.SEABASE.LOBMD__04520048849112677146
  (
    LOBNUM                           SMALLINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , STORAGETYPE                      SMALLINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , LOCATION                         VARCHAR(4096) CHARACTER SET ISO88591
      COLLATE DEFAULT NO DEFAULT NOT NULL NOT DROPPABLE NOT SERIALIZED
  , PRIMARY KEY (LOBNUM ASC)
  )
 ATTRIBUTES ALIGNED FORMAT
;

************************************************
LobNum: 1

Data Storage
============

Location: /lobs
DataFile: LOBP_04520048849112677146_0001

LOB Descriptor Handle
=====================

CREATE TABLE TRAFODION.SEABASE."LOBDescHandle__04520048849112677146_0001"
  (
    DESCPARTNKEY                     LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , NUMCHUNKS                        INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , LOBLEN                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  )
  STORE BY (DESCPARTNKEY ASC)
  SALT USING 8 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

LOB Descriptor Chunks
=====================

CREATE TABLE TRAFODION.SEABASE."LOBDescChunks__04520048849112677146_0001"
  (
    DESCPARTNKEY                     LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , DESCSYSKEY                       LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , CHUNKNUM                         INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , CHUNKLEN                         LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , DATAOFFSET                       LARGEINT DEFAULT NULL NOT SERIALIZED
  , STRINGPARAM                      VARCHAR(400) CHARACTER SET ISO88591
      COLLATE DEFAULT DEFAULT NULL NOT SERIALIZED
  , PRIMARY KEY (DESCPARTNKEY ASC, DESCSYSKEY ASC, CHUNKNUM ASC)
  )
  SALT USING 8 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

************************************************
LobNum: 2

Data Storage
============

Location: /lobs
DataFile: LOBP_04520048849112677146_0002

LOB Descriptor Handle
=====================

CREATE TABLE TRAFODION.SEABASE."LOBDescHandle__04520048849112677146_0002"
  (
    DESCPARTNKEY                     LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , NUMCHUNKS                        INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , LOBLEN                           LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  )
  STORE BY (DESCPARTNKEY ASC)
  SALT USING 8 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

LOB Descriptor Chunks
=====================

CREATE TABLE TRAFODION.SEABASE."LOBDescChunks__04520048849112677146_0002"
  (
    DESCPARTNKEY                     LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , DESCSYSKEY                       LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , CHUNKNUM                         INT NO DEFAULT NOT NULL NOT DROPPABLE NOT
      SERIALIZED
  , CHUNKLEN                         LARGEINT NO DEFAULT NOT NULL NOT DROPPABLE
      NOT SERIALIZED
  , DATAOFFSET                       LARGEINT DEFAULT NULL NOT SERIALIZED
  , STRINGPARAM                      VARCHAR(400) CHARACTER SET ISO88591
      COLLATE DEFAULT DEFAULT NULL NOT SERIALIZED
  , PRIMARY KEY (DESCPARTNKEY ASC, DESCSYSKEY ASC, CHUNKNUM ASC)
  )
  SALT USING 8 PARTITIONS
 ATTRIBUTES ALIGNED FORMAT
;

--- SQL operation complete.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据源的港湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值