Вы можете следовать тому, как Oracle хранит свои хранимые процедуры в информационной схеме. Определите таблицу с именем текстовые столбцы:
CREATE TABLE MY_TEXT (
IDENTIFIER INT,
LINE INT,
TEXT VARCHAR2 (4000),
PRIMARY KEY (INDENTIFIER, LINE));
Столбец идентификатора является внешним ключом исходной таблицы. Строка - это простое целое число (не последовательность), чтобы держать текстовые поля в порядке. Это позволяет хранить большие куски данных
Да, это не так эффективно, как blob, clob или LONG (я бы избегал полей LONG, если это вообще возможно). Да, это требует большего обслуживания, но если ваши администраторы полностью настроены против управления полями CLOB в базе данных, это второй вариант.
РЕДАКТИРОВАТЬ:
My_Table ниже, где у вас есть столбец VARCHAR, который вы хотите расширить. Я бы сохранил это в таблице для коротких текстовых полей.
CREATE TABLE MY_TABLE (
INDENTIFER INT,
OTHER_FIELD VARCHAR2(10),
REQUIRED_TEXT VARCHAR(4000),
PRIMERY KEY (IDENTFIER));
Затем напишите запрос, чтобы данные объединялись в две таблицы, упорядочивая их по LINE в поле MY_TEXT. Ваше приложение должно будет разбить строку на 2000 символов и вставить их в порядке строк.
Я бы сделал это в процедуре PL / SQL. Как вставить, так и выбрать. Строки PL / SQL VARCHAR могут содержать до 32 тыс. Символов. Который может или не может быть достаточно большим для ваших нужд.
Но, как и любому другому человеку, отвечающему на этот вопрос, я настоятельно рекомендовал бы довести дело до администратора баз данных, чтобы сделать колонку CLOB. С точки зрения программы это будет BLOB и, следовательно, прост в управлении.