This procedure appends the contents of a source internal LOB to a destination LOB. It appends the complete source LOB. There are two overloaded APPEND procedures. Syntax DBMS_LOB.APPEND ( dest_lob IN OUT NOCOPY BLOB, src_lob IN BLOB); DBMS_LOB.APPEND ( dest_lob IN OUT NOCOPY CLOB CHARACTER SET ANY_CS, src_lob IN CLOB CHARACTER SET dest_lob%CHARSET);
CREATE OR REPLACE PROCEDURE Example_1a IS dest_lob, src_lob BLOB; BEGIN -- get the LOB locators -- note that the FOR UPDATE clause locks the row SELECT b_lob INTO dest_lob FROM lob_table WHERE key_value = 12 FOR UPDATE; SELECT b_lob INTO src_lob FROM lob_table WHERE key_value = 21; DBMS_LOB.APPEND(dest_lob, src_lob); COMMIT; EXCEPTION WHEN some_exception THEN handle_exception; END;
DBMS_LOB.WRITEAPPEND ( lob_loc IN OUT NOCOPY BLOB, amount IN BINARY_INTEGER, buffer IN RAW); 例子: CREATE OR REPLACE PROCEDURE Example_17 IS lob_loc BLOB; buffer RAW; amt BINARY_INTEGER := 32767; i INTEGER; BEGIN SELECT b_col INTO lob_loc FROM lob_table WHERE key_value = 12 FOR UPDATE; FOR i IN 1..3 LOOP -- fill the buffer with data to be written to the lob dbms_lob.writeappend (lob_loc, amt, buffer); END LOOP; END;
DBMS_LOB.APPEND (
dest_lob IN OUT NOCOPY BLOB,
src_lob IN BLOB); DBMS_LOB.APPEND (
dest_lob IN OUT NOCOPY CLOB CHARACTER SET ANY_CS,
src_lob IN CLOB CHARACTER SET dest_lob%CHARSET);
dest_lob, src_lob BLOB;
BEGIN
-- get the LOB locators
-- note that the FOR UPDATE clause locks the row
SELECT b_lob INTO dest_lob
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
SELECT b_lob INTO src_lob
FROM lob_table
WHERE key_value = 21;
DBMS_LOB.APPEND(dest_lob, src_lob);
COMMIT;
EXCEPTION
WHEN some_exception
THEN handle_exception;
END;
lob_loc IN OUT NOCOPY BLOB,
amount IN BINARY_INTEGER,
buffer IN RAW); 例子:
CREATE OR REPLACE PROCEDURE Example_17 IS
lob_loc BLOB;
buffer RAW;
amt BINARY_INTEGER := 32767;
i INTEGER;
BEGIN
SELECT b_col INTO lob_loc
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
FOR i IN 1..3 LOOP
-- fill the buffer with data to be written to the lob
dbms_lob.writeappend (lob_loc, amt, buffer);
END LOOP;
END;