2017-08-27 3 views
0

Est-il possible en utilisant SQL générique pour insérer une chaîne plus de 4000 caractères dans un CLOBEst-il possible en utilisant SQL générique pour insérer une chaîne plus de 4000 caractères dans un CLOB

nouvelle colonne Ajouté:

ALTER TABLE MESSAGES ADD (MESSAGE_CLOB CLOB); 

INSERT INTO TF_STP_MESSAGES 
      (ID, 
      MESSAGE_CLOB) 
    VALUES (MSG_SEQ.NEXTVAL, 
      TO_CLOB ('STRING WITH 10000 CHARACHTER')); 

Oracle renvoie le message suivant:

PL/SQL: ORA-01704: chaîne de caractères trop long

Je dois l'insérer par SQL

S'il vous plaît aviser.

+0

Voyez si vous pouvez trouver la réponse ici: https://community.oracle.com/thread/1068414 .Surprisingly semble être exactement la même question. – sagi

Répondre

0

Vous devez utiliser un bloc anonyme (ou une procédure) pour exécuter l'instruction insert en déclarant comme variable CLOB et en l'utilisant dans l'insertion.

DECLARE 

v_message_clob CLOB := 'STRING WITH 10000 CHARACTERS'; 

BEGIN 
INSERT INTO TF_STP_MESSAGES 
      (ID, 
      MESSAGE_CLOB) 
    VALUES (MSG_SEQ.NEXTVAL, 
      v_message_clob); 
END; 
/