Мне нужно сохранить (большой) SQL-запрос в столбце таблицы, и я подумал об использовании поля BLOB
. Чтобы было ясно, я хочу сохранить запрос, а не его результат.
Что лучше использовать: BLOB
или VARCHAR
? Или что-то еще, может быть?
Мне нужно сохранить (большой) SQL-запрос в столбце таблицы, и я подумал об использовании поля BLOB
. Чтобы было ясно, я хочу сохранить запрос, а не его результат.
Что лучше использовать: BLOB
или VARCHAR
? Или что-то еще, может быть?
Если вы собираетесь хранить текстовые данные, которые не помещаются в VarChar2
, я думаю, вам следует использовать CLOB
.
Цитата из OraFaq: * CLOB (Character Large Object) — это тип данных Oracle, который может содержать до 4 ГБ данных. CLOB удобны для хранения текста. *
Другой вариант — CLOB. Для текстовых данных логичнее использовать CLOB, чем BLOB. Даже если вам не нужно анализировать данные в базе данных, все же может иметь смысл использовать CLOB, потому что даже просматривать данные проще.
Некоторые функции доступны только при использовании VARCHAR. Например, вы можете создать индекс только для столбцов VARCHAR (я не говорю здесь о полнотекстовом индексе, я знаю, что вы можете создать полнотекстовый индекс для столбца CLOB). У вас не может быть первичного ключа CLOB или BLOB (думаю, вам это не нужно; просто в качестве примера).
Большинство операций VARCHAR намного быстрее, чем операции CLOB/BLOB. Даже чтение данных происходит быстрее, если вы используете VARCHAR (если только в столбце действительно много текста). VARCHAR требует меньших затрат памяти, но обычно они полностью считываются из памяти, поэтому в конце VARCHAR может по-прежнему использовать больше памяти.
Короткие строки → VARCHAR
Длинные строки → CLOB
Двоичные данные → BLOB
Они оба разные.
Вы используете BLOB
для хранения двоичных данных, таких как изображения, аудио и другие мультимедийные данные.
и VARCHAR
для хранения текста любого размера до предела.