给你一个例子,希望能给你一点启发
CREATE OR REPLACE PROCEDURE Example_l2f IS
lobd BLOB;
fils BFILE := BFILENAME('SOME_DIR_OBJ','some_file');
amt INTEGER := 4000;
BEGIN
INSERT INTO lobd values(42,empty_blob());
SELECT b_lob INTO lobd FROM lob_table WHERE key_value = 42 FOR UPDATE;
dbms_lob.fileopen(fils, dbms_lob.file_readonly);
dbms_lob.loadfromfile(lobd, fils, amt);
COMMIT;
dbms_lob.fileclose(fils);
END;
CREATE OR REPLACE PROCEDURE Example_l2f IS
lobd BLOB;
fils BFILE := BFILENAME('SOME_DIR_OBJ','some_file');
amt INTEGER := 4000;
BEGIN
INSERT INTO lobd values(42,empty_blob());
SELECT b_lob INTO lobd FROM lob_table WHERE key_value = 42 FOR UPDATE;
dbms_lob.fileopen(fils, dbms_lob.file_readonly);
dbms_lob.loadfromfile(lobd, fils, amt);
COMMIT;
dbms_lob.fileclose(fils);
END;
create or replace procedure insert_clob
(p_id NUMBER, p_clob VARCHAR2)
AS
f_clob BFILE;
b_clob clob;
warning number;
dest_offset number;
src_offset number;
lang_context number;Begin
dest_offset:=1;
src_offset:=1;
lang_context:=0;
-- Update the employee photo
insert into clobdata values (p_id,empty_clob())
RETURN content into b_clob;f_clob := bfilename('CLOB_SOURCE', p_clob);
dbms_lob.fileopen(f_clob, dbms_lob.file_readonly);dbms_lob.loadclobfromfile(b_clob,f_clob, dbms_lob.getlength(f_clob),
dest_offset,src_offset,0,lang_context,warning);
dbms_lob.fileclose(f_clob);COMMIT;
EXCEPTION
-- Check for your error messages
WHEN others THEN
dbms_output.put_line('*** ERROR *** Check you procedure.');
END;
/但是在8I上我还没有成功导入过,因为没有LOADCLOBFROMFILE函数
如果按照w_tsinghua()那样只把BLOB改为CLOB,导进去后变成乱码