oracle database clob field processing

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/


Guess you like

Origin blog.51cto.com/11310506/2431176