Подтвердить что ты не робот

Как написать оракул вставить script с одним полем как CLOB?

Я хочу создать вставку script, которая будет использоваться только для вставки одной записи в одну таблицу.

Он имеет 5 столбцов и один из них имеет тип CLOB.

Всякий раз, когда я пытаюсь, он говорит, что не может вставить строку так долго. больше 4000.

Мне нужна инструкция insert с clob как одно поле.

INSERT INTO tbltablename 
            (id, 
             NAME, 
             description, 
             accountnumber, 
             fathername) 
VALUES      (1, 
             N'Name', 
             clob'some very long string here, greater than 4000 characters', 
             23, 
             'John') ;
4b9b3361

Ответ 1

Имейте в виду, что строки SQL не могут превышать 4000 байт, в то время как Pl/SQL может иметь строки размером 32767 байт. см. ниже пример вставки большой строки через анонимный блок, который, я считаю, сделает все, что вам нужно.

note Я изменил varchar2 (32000) на CLOB

set serveroutput ON 
CREATE TABLE testclob 
  ( 
     id NUMBER, 
     c  CLOB, 
     d  VARCHAR2(4000) 
  ); 

DECLARE 
    reallybigtextstring CLOB := '123'; 
    i                   INT; 
BEGIN 
    WHILE Length(reallybigtextstring) <= 60000 LOOP 
        reallybigtextstring := reallybigtextstring 
                               || '000000000000000000000000000000000'; 
    END LOOP; 

    INSERT INTO testclob 
                (id, 
                 c, 
                 d) 
    VALUES     (0, 
                reallybigtextstring, 
                'done'); 

    dbms_output.Put_line('I have finished inputting your clob: ' 
                         || Length(reallybigtextstring)); 
END; 

/ 
SELECT * 
FROM   testclob; 


 "I have finished inputting your clob: 60030"