Oracle how to operate LOB

xiaoxiao2021-03-06  110

DBMS_LOB

CREATE TABLE LOB_TABLE (Key_Value Integer, B_LOB BLOB, C_LOB Clob, N_LOB NClob, F_LOB BFILE);

INSERT INTO A_TABLE VALUES (EMPTY_BLOB ());

INSERT INTO LOB_TABLE VALUES (21, NULL, NULL, NULL, BFILENAME ('IMG', 'Image1.gif');

INSERT INTO LOB_TABLE VALUES (22, NULL, NULL, NULL, BFILENAME ('IMG', 'Image2.gif');

Update LOB_TABLE SET F_LOB = BFileName ('IMG', 'Image3.gif') Where key_value = 22; Update LOB_TABLE SET F_LOB = (SELECT F_LOB FROM LOB_TABLE WHERE KEY_VALUE = 22) Where key_value = 21;

Create Directory Scott_dir as '/ usr / home / scott'

Maximum Number of Open Bfiles session_max_open_files = 20insert Into Lob_Table Values ​​(1, Null, 'Abcd', NULL, NULL);

COMMIT;

DECLARE num_var INTEGER; clob_selected CLOB; clob_updated CLOB; clob_copied CLOB; read_amount INTEGER; read_offset INTEGER; write_amount INTEGER; write_offset INTEGER; buffer VARCHAR2 (20); BEGIN

SELECT C_LOB INTO Clob_Selected from Lob_Table Where Key_Value = 1;

SELECT C_LOB INTO Clob_updated from lob_table where key_value = 1 for update; clob_copied: = clob_selected;

Read_AMount: = 10; Read_offset: = 1;

DBMS_LOB.READ (Clob_Selected, Read_Amount, Read_offset, Buffer);

- dbms_output.put_line ( 'clob_selected value:' || buffer); insert into temp values ​​(1, buffer); read_amount: = 10; dbms_lob.read (clob_copied, read_amount, read_offset, buffer); - dbms_output.put_line ( 'clob_copied value:' || buffer); insert into temp values ​​(2, buffer); read_amount: = 10; dbms_lob.read (clob_updated, read_amount, read_offset, buffer); - dbms_output.put_line ( 'clob_updated value:' | | buffer; INSERT INTO TEMP VALUES (3, Buffer); - At Time T4: Write_Amount: = 3; Write_offset: = 5; Buffer: = 'EFG'; DBMS_LOB.WRITE (Clob_updated, Write_Amount, Write_offset, Buffer; read_amount: = 10; dbms_lob.read (clob_updated, read_amount, read_offset, buffer); - dbms_output.put_line ( 'clob_updated value:' || buffer); insert into temp values ​​(4, buffer); read_amount: = 10; dbms_lob .read (clob_selected, read_amount, read_offset, buffer); - dbms_output.put_line ( 'clob_selected value:' || buffer); insert into temp values ​​(5, buffer); - Produces the output 'abcd' read_amount: = 10; dbms_lob.read (clob_copied, read_amount, read_offset, buffer); - dbms_output.put_line ( 'clob_copied value:' || buffer); insert into temp values ​​(6, buffer); - Produces the output ' abcd'END; / OCILobGetLength () OCILobWrite () FUNCTION EMPTY_BLOB () RETURN BLOB; FUNCTION EMPTY_CLOB () RETURN CLOB; FUNCTION BFILENAME (directory_alias IN VARCHAR2, filename IN VARCHAR2) RETURN BFILE;

转载请注明原文地址:https://www.9cbs.com/read-97282.html

New Post(0)