COPY¶
将LOB拷贝到另一个LOB
声明¶
DBMS_LOB.COPY (
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB,
amount IN BIGINT,
dest_offset IN BIGINT := 1,
src_offset IN BIGINT := 1);
DBMS_LOB.COPY (
dest_lob IN OUT NOCOPY CLOB ,
src_lob IN CLOB ,
amount IN BIGINT,
dest_offset IN BIGINT := 1,
src_offset IN BIGINT := 1);
结构¶
| 参数 | 说明 |
|---|---|
| dest_lob | 目的定位器实例 |
| src_blob | 源定位器实例 |
| amount | 字符数 |
| dest_offset | 目的定位器偏移量 |
| src_offset | 源定位器偏移量 |
示例¶
drop table tLob cascade;
Create Table tLob (
no Number(4),
name VarChar2(10),
resume CLob,
photo BLob,
record BFile
);
insert into tlob values(1,'Nick','CLOB对象列',empty_blob(),bfilename('MYDIR','1.JPG'));
insert into tlob values(2,'Jack','CLOB对象列',empty_blob(),bfilename('MYDIR','2.JPG'));
insert into tlob values(3,'Mary','对象列CLOB',empty_blob(),bfilename('MYDIR','3.JPG'));
create or replace procedure test_copy() as
Declare
vDEST_LOB clob;
vSRC_LOB clob;
AMOUNT number;
DEST_OFFSET number;
SRC_OFFSET number;
Begin
select resume into vDEST_LOB from tlob where no = 1 FOR UPDATE;
select resume into vSRC_LOB from tlob where no = 2 ;
AMOUNT := DBMS_LOB.GetLength(vSRC_LOB);
DEST_OFFSET := DBMS_LOB.GetLength(vDEST_LOB)+1;
SRC_OFFSET := 1;
DBMS_LOB.Copy(vDEST_LOB, vSRC_LOB, AMOUNT, DEST_OFFSET, SRC_OFFSET);
DBMS_output.put_line('拷贝结果为: '||vDEST_LOB);
End;
/
exec test_copy();
/