ORA-01704 хотя не должно быть так.

ORA-01704
Дата: 02.12.2009 08:01:17
Добрый день,
при инсерте вылетает ошибка
ORA-01704: string literal too long
хотя строка равна 2764 символа. Поле в которое делаю инсерт
VARCHAR2 (4000 Char)

сделал тестовую табличку с полем Clob пробовал туда заинсертить эту же строку, опять ругается той же ошибкой.

в чём может быть проблема?
Версия оракла 10.2.0.3.0.
Вячеслав Любомудров
Дата: 02.12.2009 08:11:17
Размер varchar2 даже 4000 char не превышает 4000 byte
Проверь размер вставляемой строки через lengthB
ORA-01704
Дата: 02.12.2009 08:16:10
Вячеслав Любомудров
Размер varchar2 даже 4000 char не превышает 4000 byte
Проверь размер вставляемой строки через lengthB


select lengthB('строка')
  from dual

вместо результата опять выдаёт
ORA-01704: string literal too long
Вячеслав Любомудров
Дата: 02.12.2009 08:24:36
А что, у тебя строка литералом?
Попробуй через PL/SQL. Если строка это один литерал, разбей на куски и используй конкатенацию
Babe_Vampire
Дата: 02.12.2009 10:08:30
Кодировка в БД и на клиенте, с которого делается вставка одинаковая?
ORA-01704
Дата: 02.12.2009 13:45:28
Babe_Vampire
Кодировка в БД и на клиенте, с которого делается вставка одинаковая?

Кодировка одинаковая.
Строка в байтах была больше 4000 в этом и была вся проблема.

Проблему решил так как посоветовал Вячеслав Любомудров, разбил строчку на несколько сделал инсерт а потом уже при выборке склеиваю их в одну.
ORA-01704
Дата: 02.12.2009 13:46:59
Всем спасибо за советы!