Alors que j'essaie de définir la valeur de plus de 4000 caractères sur un champ qui a le type de données CLOB
, cela me donne cette erreur:
ORA-01704: chaîne littérale trop longue.
Toute suggestion, quel type de données serait applicable pour moi si je dois définir la valeur d'un nombre illimité de caractères, bien que dans mon cas, il se trouve qu'il s'agit d'environ 15000
caractères.
Remarque: la longue chaîne que j'essaie de stocker est codée en ANSI.
Qu'utilisez-vous lorsque vous utilisez CLOB?
Dans tous les cas, vous pouvez le faire avec PL/SQL
DECLARE
str varchar2(32767);
BEGIN
str := 'Very-very-...-very-very-very-very-very-very long string value';
update t1 set col1 = str;
END;
/
Essayez de diviser les personnages en plusieurs morceaux comme la requête ci-dessous et essayez:
Insert into table (clob_column) values ( to_clob( 'chunk 1' ) || to_clob( 'chunk 2' ) );
Ça a marché pour moi.
Le fractionnement fonctionne jusqu'à 4000 caractères selon les caractères que vous insérez. Si vous insérez des caractères spéciaux, cela peut échouer. Le seul moyen sûr est de déclarer une variable.