1, designated as type CLOB string to be inserted, or a stored procedure can be used
example:
DECLARE
REALLYBIGTEXTSTRING CLOB: = 'string to be inserted into the mass';
BEGIN
INSERT INTO test_table VALUES('test', REALLYBIGTEXTSTRING, '0');
commit;
end ;
2, blob type field data into clob
CREATE OR REPLACE FUNCTION blob_to_clob (blob_in IN BLOB) RETURN CLOB
AS
v_clob CLOB;
v_varchar VARCHAR2 (32767);
v_start PLS_INTEGER := 1;
v_buffer PLS_INTEGER := 32767;
tmp_num number;
BEGIN
DBMS_LOB.CREATETEMPORARY(v_clob, TRUE);
tmp_num := CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer);
Initiator error preventing incoming BLOB is NULL or length is zero - if tmp_num> 0 then
FOR i IN 1..tmp_num
LOOP
v_varchar := UTL_RAW.CAST_TO_VARCHAR2(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start));
DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar);
v_start := v_start + v_buffer;
END LOOP;
end if;
RETURN v_clob;
END blob_to_clob;
2. Call blob_to_clob to complete the conversion
update gs_gift p set p.description1=blob_to_clob(p.description);
commit;
3, sqlload large field (LOB type) is introduced
https://www.open-open.com/pdf/aab245f2dcdb421f9c98ec00e695b8a6.html
http://blog.itpub.net/31015730/viewspace-2147266
https://blog.csdn.net/u011364306/article/details/50598321 (Operation Reference Articles)
1) data stored in a separate file
CREATE TABLE LOBTBL
(
FILEOWNER VARCHAR2(30),
FILENAME VARCHAR2(200),
FILESIZE NUMBER,
FILEDATA CLOB,
CREATE_DATE DATE
);
[oracle@cancer sqlldr]$ cat ldr_case12_2.dat
2016-1-27 15:21 183 oracle /home/oracle/sqlldr/ldr_case11_1.dat
2016-1-27 15:22 150 oracle /home/oracle/sqlldr/ldr_case11_1.ctl
2016-1-27 15:22 1,714 oracle /home/oracle/sqlldr/ldr_case11_1.log
2016-1-27 16:05 166 oracle /home/oracle/sqlldr/ldr_case11_2.ctl
2016-1-27 16:13 136 oracle /home/oracle/sqlldr/ldr_case11_2.bad
2016-1-27 16:13 204 oracle /home/oracle/sqlldr/ldr_case11_2.dat
2016-1-27 16:13 1,696 oracle /home/oracle/sqlldr/ldr_case11_2.log
2016-1-27 16:35 120 oracle /home/oracle/sqlldr/ldr_case11_3.ctl
2016-1-27 16:55 188 oracle /home/oracle/sqlldr/ldr_case11_3.dat
2016-1-27 16:55 1,695 oracle /home/oracle/sqlldr/ldr_case11_3.log
2016-1-27 20:15 183 oracle /home/oracle/sqlldr/ldr_case11_4.dat
2016-1-27 20:33 126 oracle /home/oracle/sqlldr/ldr_case11_4.ctl
2016-1-27 20:33 3 oracle /home/oracle/sqlldr/ldr_case11_4.bad
2016-1-27 20:33 1,829 oracle /home/oracle/sqlldr/ldr_case11_4.log
- control file
- control file
[oracle@cancer sqlldr]$ cat ldr_case12_2.ctl
LOAD DATA
INFILE ldr_case12_2.dat
TRUNCATE INTO TABLE LOBTBL
(
CREATE_DATE position(1:16) date 'yyyy-mm-dd hh24:mi',
FILESIZE position(*+2:23) "to_number(:FILESIZE,'99,999,999')",
FILEOWNER position(*+2:30),
FILENAME position(*+2:68) "substr(:FILENAME,instr(:FILENAME,'/',-1)+1)",
FILEDATA LOBFILE(FILENAME) TERMINATED BY EOF
Sqlldr execute commands, and see the results
- execute command sqlldr
[oracle@cancer sqlldr]$ sqlldr scott/tiger control=ldr_case12_2.ctl
Data to be loaded is not delimiter, but fixed length character string, can be used to specify the position keyword column start and end positions of SQL * Loader control file. position usually have the following three kinds of writing:
SQL * Loader] [SQL * Loader experimental purposes (5) - fixed length character string of three kinds of data writing processing position
http://blog.itpub.net/20335819/viewspace-698052/