130829大对象

创建大对象表

SQL> create table clob_content (
  2  id integer primary key,
  3  clob_column clob not null );
 
Table created

SQL> create table blob_content (
  2  id integer primary key,
  3  blob_column blob not null );
 
Table created

SQL> create table bfile_content (
  2  id integer primary key,
  3  bfile_column bfile not null );
 
Table created

分别测试bfile、clob、blob;

在向lob中写入内容之前,必须首先初始化lob列;

SQL> insert into calvin.clob_content ( id, clob_column ) 
  2  values (1, empty_clob() );
 
1 row inserted
 
SQL> insert into calvin.blob_content( id, blob_column)
  2  values (1,empty_blob());
 
1 row inserted

使用update将两个表中的lob更新;

SQL> update calvin.clob_content set clob_column = 'Creeps in this petty pace' where id = 1;
 
1 row updated
 
SQL> update blob_content set blob_column = '1001110101011' where id =1;
 
1 row updated
 
SQL> commit;
 
Commit complete
 
SQL> select * from clob_content;
 
                                     ID CLOB_COLUMN
--------------------------------------- --------------------------------------------------------------------------------
                                      1 Creeps in this petty pace
 
SQL> select * from blob_content;
 
                                     ID BLOB_COLUMN
--------------------------------------- -----------
                                      1 <BLOB>

sqlplus中无法显示blob中的具体内容;


测试bfile;

bfile lob类型可以存储指向文件的指针,这些文件可以通过计算机系统访问;

1.创建目录对象,需要create any directory 权限;

SQL> conn /@test as sysdba
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as [calvin]@TEST AS SYSDBA
 
SQL> grant create any directory to calvin;
 
Grant succeeded
 
SQL> grant create directory to calvin;
 

SQL> conn calvin/123456@test
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as calvin@TEST
 
SQL> create or replace directory sample_dir as 'd:\sample_dir';
 
Directory created
 


2.插入bfile行;

 
SQL> insert into bfile_content ( id, bfile_column )
  2  values ( 1, bfilename('SAMPLE_DIR', 'out1.txt'));
 
1 row inserted
 
SQL> commit;
 
Commit complete
 
SQL> select * from calvin.bfile_content;
 
                                     ID BFILE_COLUMN
--------------------------------------- ------------
                                      1 <BFILE>
 
sqlplus中无法留恋bfile具体内容;可以使用plsql查看;


使用plsql阅读clob和blob内容;

SQL> create or replace procedure read_clob( id_par in integer )
  2  is clob_var clob;
  3  char_buffer_var varchar2(50);
  4  offset_var integer :=1;
  5  amount_var integer :=50;
  6  begin
  7    select clob_column into clob_var from calvin.clob_content where id = id_par;
  8  
  9    dbms_lob.read(clob_var,amount_var, offset_var, char_buffer_var);
 10    dbms_output.put_line('char_buffer_var' || char_buffer_var);
 11    dbms_output.put_line('amount_var' || amount_var);
 12  end read_clob;
 13  /
 
Procedure created
测试读出结果;
SQL> set serveroutput on;
SQL> call calvin.read_clob(1);
char_buffer_varCreeps in this petty pace
amount_var25

Call completed.
SQL> create or replace procedure read_blob(
  2  id_par in integer )
  3  is blob_var blob;
  4  binary_buffer_var raw(25);
  5  offset_var integer :=1;
  6  amount_var integer :=25;
  7  begin
  8    select blob_column into blob_var from calvin.blob_content where id = id_par;
  9    dbms_lob.read(blob_var, amount_var, offset_var, binary_buffer_var);
 10    dbms_output.put_line('bindary_buffer_var = ' || binary_buffer_var);
 11    dbms_output.put_line('amount_var = ' || amount_var);
 12  end read_blob;
 13  /
 
Procedure created
 
读出blob测试结果;

SQL> call calvin.read_blob(1);
bindary_buffer_var = 01001110101011
amount_var = 7

Call completed.




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值