Если требуется просто сохранить строку, я бы порекомендовал CLOB вместо BLOB, так как для хранения текста в столбце BLOB его необходимо привести к RAW.Поиск одинаково сложен.
Это не может быть сделано в SQL, так как 4000 символов - это максимум, который вы можете присвоить строковому полю.Тем не менее, вот мой обходной путь с использованием небольшого блока Pl / Sql (в Pl / Sql максимум 32767 символов.
CREATE TABLE clob_ins_test (
clob_column CLOB
);
/
Table CLOB_INS_TEST created.
SET SERVEROUTPUT ON;
DECLARE
v_long_text VARCHAR2( 5000 );
BEGIN
v_long_text := LPAD( '1', 3500, '1' ) || LPAD( '1', 600, '1' ); /* Assign your string value here as v_long_text := '/9j/4AAQSkZJRgABAgA...2Q=='*/
dbms_output.put_line( 'Length of String is ' || length( v_long_text ) ); -- Printing the length of the String assigned to v_long_text.
INSERT INTO clob_ins_test VALUES ( v_long_text );
END;
/
Length of String is 4100
PL/SQL procedure successfully completed.
SELECT dbms_lob.getlength( clob_column ) Length, clob_column FROM CLOB_INS_TEST;
LENGTH CLOB_COLUMN
---------- --------------------------------------------------------------------------------
4100 11111111111111111111111111111111111111111111111111111111111111111111111111111111
Надеюсь, это поможет!