2010-02-10 4 views
2

Je suis en train de table avec clob colonne & en essayant d'insérer des données de caractère SIGNED qui contient = 176048 caractères, il jette une erreur a Insérer transaction exception data java.sql.SQLException: ORA-01704: chaîne littérale trop longueOracle 10gR2 CLOB Type de données

Répondre

0

Vous pouvez uniquement insérer des littéraux de chaîne d'au plus 4 000 caractères. Sinon, vous devez utiliser une variable de liaison.

1

De this AskTom answer:

Oui, vous pouvez insérer jusqu'à 4000 octets dans une instruction INSERT - juste

insert en valeurs (t) de clob_col ('Bonjour');

cela fonctionne. Pour les plus gros blocs, vous insérer un EMPTY_CLOB() et puis en utilisant ce localisateur lob nouvellement créé écrivez-lui en morceaux. Il regarderait comme ceci:

begin 
    insert into t (clob_col) values (empty_clob()) 
    returning clob_col into Local_Variable; 

    dbms_lob.write(local_variable, ....); 

end; 
/

dans PLSQL.

Questions connexes