2014-02-12 1 views
1

Я пытаюсь вставить значение (например, O20040601120101SYSONEBNPENDING20040601101010Y00405) в БД Oracle с типом данных долго, но я получаю сообщение об ошибке говорящее отчет Error:Невозможно вставить за 4000 символа

SQL Error: ORA-01704: string literal too long 
01704. 00000 - "string literal too long" 
*Cause: The string literal is longer than 4000 characters. 
*Action: Use a string literal of at most 4000 characters. 
      Longer values may only be entered using bind variables. 

Я попытался с помощью clob также, но не в состоянии решить это, пожалуйста, помогите мне в этом.

+1

Прежде всего, вы больше не должны использовать тип данных 'LONG' для столбцов. Oracle рекомендует вместо этого использовать типы данных LOB - CLOB, NCLOB (на основе вашего требования) – Incognito

+0

Данные примера, которые вы разместили здесь, были успешно вставлены в таблицу с CLOB. Можете ли вы разместить определение таблицы и фактические данные, которые вы пытаетесь вставить? – Incognito

ответ

3

Максимальное значение для одноразовой вставки - 4000 символов (максимальный строковый литерал в Oracle). Однако вы можете использовать функцию lob dbms_lob.append(), чтобы добавить куски (максимум) 4000 символов в клоб.

See Here

This is useful

0

Как указано в предыдущем комментарии, вы не должны использовать LONG тип данных. Он устарел много лет назад ...

Если вы используете Oracle 12c, помните, что вы также можете использовать тип данных VARCHAR2. Он был расширен для хранения до 32767 байтов!

Смежные вопросы