Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Dany305
Member

Откуда:
Сообщений: 99
В новой версии TOAD при компиляции пакета выдает ошибку
автор
[Error] Syntax check (19: 16): ERROR line 19, col 16, ending_line 19, ending_col 27: The string initializer has a value which is too long

на строке
v_alphaset VARCHAR2(30) := 'АВЕКМНОРСТУХБГДЖЗИЛПФЦЧШЩЭЮЯ*';

если ее заменить на
v_alphaset VARCHAR2(60) := 'АВЕКМНОРСТУХБГДЖЗИЛПФЦЧШЩЭЮЯ*';
то все компилируется.

TOAD 10.5.1.3 почему-то считает, что русские символы занимают по два байта.
В старом TOAD все компилируется. Кто что посоветует?
8 сен 10, 14:45    [9404613]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Dany305
В новой версии TOAD при компиляции пакета выдает ошибку
автор
[Error] Syntax check (19: 16): ERROR line 19, col 16, ending_line 19, ending_col 27: The string initializer has a value which is too long

на строке
v_alphaset VARCHAR2(30) := 'АВЕКМНОРСТУХБГДЖЗИЛПФЦЧШЩЭЮЯ*';

если ее заменить на
v_alphaset VARCHAR2(60) := 'АВЕКМНОРСТУХБГДЖЗИЛПФЦЧШЩЭЮЯ*';
то все компилируется.

TOAD 10.5.1.3 почему-то считает, что русские символы занимают по два байта.
В старом TOAD все компилируется. Кто что посоветует?

в базе кодировка то какая?
8 сен 10, 14:58    [9404732]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Dany305
Member

Откуда:
Сообщений: 99
Вот параметры базы:
NLS_LANGUAGE,AMERICAN
NLS_TERRITORY,RUSSIA
NLS_CURRENCY,?.
NLS_ISO_CURRENCY,RUSSIA
NLS_NUMERIC_CHARACTERS,,
NLS_CHARACTERSET,CL8MSWIN1251
NLS_CALENDAR,GREGORIAN
NLS_DATE_FORMAT,DD.MM.RR
NLS_DATE_LANGUAGE,AMERICAN
NLS_SORT,BINARY
NLS_TIME_FORMAT,HH24:MI:SSXFF
NLS_TIMESTAMP_FORMAT,DD.MM.RR HH24:MI:SSXFF
NLS_TIME_TZ_FORMAT,HH24:MI:SSXFF TZR
NLS_TIMESTAMP_TZ_FORMAT,DD.MM.RR HH24:MI:SSXFF TZR
NLS_DUAL_CURRENCY,?.
NLS_COMP,BINARY
NLS_LENGTH_SEMANTICS,BYTE
NLS_NCHAR_CONV_EXCP,FALSE
NLS_NCHAR_CHARACTERSET,AL16UTF16
NLS_RDBMS_VERSION,10.2.0.4.0
8 сен 10, 15:16    [9404920]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
dbms_sql
Guest
Скорее всего Тоад наконец-то сделал Юникод среду. Я эту версию ТОАДа еще не поставил, но думаю, что в его настройках есть как расценивать исходники, как ANSI или UTF8 или USC2. Это мое предположение. А вообще если тоад что-то не компилит, то я всегда компилю через SQL*Plus, вызывая прямо из ТОАДа. У Тоада проблемы внутреннего парсера с условной компиляцией, например. И не всегда синтаксис новых версий он понимает. Например, Тоад 10.1 в перекрытом методе не понял вызов метода предка, при помощи конструкции (self as <TSuperClass>).<method_name>, которая появилась в 11 оракле.
8 сен 10, 17:00    [9405956]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Dany305
TOAD 10.5.1.3 почему-то считает, что русские символы занимают по два байта.
В старом TOAD все компилируется. Кто что посоветует?

Причем считает не Oracle, а именно TOAD и его syntax checking - по моему неотключаемая штука. Отвечает за все это библиотека QP5.dll из директории установки TOAD, в качестве хака попробуй заменить ее в новой версии TOAD на старую. У меня в TOAD 10.5.1.3 после замены QP5.dll из TOAD 9.5.7.2 указанная ошибка пропала.
8 сен 10, 18:09    [9406784]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Dany305
Member

Откуда:
Сообщений: 99
dbms_sql
Скорее всего Тоад наконец-то сделал Юникод среду. Я эту версию ТОАДа еще не поставил, но думаю, что в его настройках есть как расценивать исходники, как ANSI или UTF8 или USC2. Это мое предположение. А вообще если тоад что-то не компилит, то я всегда компилю через SQL*Plus, вызывая прямо из ТОАДа. У Тоада проблемы внутреннего парсера с условной компиляцией, например. И не всегда синтаксис новых версий он понимает. Например, Тоад 10.1 в перекрытом методе не понял вызов метода предка, при помощи конструкции (self as <TSuperClass>).<method_name>, которая появилась в 11 оракле.


Действительно в 10 сделали поддержку Юникод. Видимо, проблемы из-за этого. В настройках стоит "Default Encoding: ANSI". Если в редакторе пакета вызвать Properties из контексного меню, то там тоже ANSI. Так что проблема не в кодировках исходников.

Вообще, эта проблема с 10 известна уже полгода, но до сих пор непофиксина.
8 сен 10, 18:16    [9406834]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2854
Dany305,

Вообще VARCHAR2(30) на русских символах - это, по моему, решимость найти в будущем проблемы на свою ( )( )
В чем проблема использовать VARCHAR2(30 char)?
8 сен 10, 21:18    [9407500]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Dany305
Member

Откуда:
Сообщений: 99
AlexFF__|
Dany305,

Вообще VARCHAR2(30) на русских символах - это, по моему, решимость найти в будущем проблемы на свою ( )( )
В чем проблема использовать VARCHAR2(30 char)?


Никаких проблем с использованием VARCHAR2(30) на русских символах до TOAD 10 не было.
С использованием VARCHAR2(30 char) результат такой же.
8 сен 10, 21:29    [9407539]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Dany305
AlexFF__|
Dany305,

Вообще VARCHAR2(30) на русских символах - это, по моему, решимость найти в будущем проблемы на свою ( )( )
В чем проблема использовать VARCHAR2(30 char)?


Никаких проблем с использованием VARCHAR2(30) на русских символах до TOAD 10 не было.
С использованием VARCHAR2(30 char) результат такой же.

ну уж коли писать декларации в чарах, то и семантику
автор
NLS_LENGTH_SEMANTICS,BYTE

в чар надо перегнать.

хотя, если сабж растет от внутренней реализации клиента - вряд ли это поможет
9 сен 10, 11:03    [9409273]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
пыхпыбых
Guest
orawish
Dany305
AlexFF__|
Dany305,

Вообще VARCHAR2(30) на русских символах - это, по моему, решимость найти в будущем проблемы на свою ( )( )
В чем проблема использовать VARCHAR2(30 char)?


Никаких проблем с использованием VARCHAR2(30) на русских символах до TOAD 10 не было.
С использованием VARCHAR2(30 char) результат такой же.

ну уж коли писать декларации в чарах, то и семантику
автор
NLS_LENGTH_SEMANTICS,BYTE

в чар надо перегнать.

Если перегнать NLS_LENGTH_SEMANTICS в char, то какой смысл писать тогда VARCHAR2(30 char)?
Это параллельные решения.
9 сен 10, 11:53    [9409790]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
И не имееющие в данном случае никакого смысла
9 сен 10, 11:56    [9409828]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
пыхпыбых
..
Если перегнать NLS_LENGTH_SEMANTICS в char, то какой смысл писать тогда VARCHAR2(30 char)?
Это параллельные решения.

с точки зрения декларации столбца или переменной в sql/pl_sql - да.
но мы (типа) ищем чем баг заткнуть.
а (бажной, клиентский) сценарий - кто знает на что смотрит? и смотрит ли, вообще?
9 сен 10, 12:16    [9410038]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Dany305
Member

Откуда:
Сообщений: 99
Denis Popov
Dany305
TOAD 10.5.1.3 почему-то считает, что русские символы занимают по два байта.
В старом TOAD все компилируется. Кто что посоветует?

Причем считает не Oracle, а именно TOAD и его syntax checking - по моему неотключаемая штука. Отвечает за все это библиотека QP5.dll из директории установки TOAD, в качестве хака попробуй заменить ее в новой версии TOAD на старую. У меня в TOAD 10.5.1.3 после замены QP5.dll из TOAD 9.5.7.2 указанная ошибка пропала.


Заменил QP5.dll на QP5.dll версию 5.135.907.31004 из TOAD 9.5.7.2 помогло. Но в свое время в TOAD 9.5.7.2 я специально менял QP5.dll на версию 5.143 из-за проблем с форматированием больших пакетов в версии 5.135. Прикол в том, что в TOAD 10.5.1.3 с QP5.dll версии 5.135 ошибка пропадает, а с версией 5.143 снова появляется.

Получаем следующую картину:

TOAD 10.5.1.3 + QP5.dll 5.135 - нет ошибки "The string initializer has a value which is too long", но есть проблемы с форматированием.

TOAD 10.5.1.3 + QP5.dll 5.143 - есть ошибка "The string initializer has a value which is too long", но нет проблем с форматированием.

TOAD 9.5.7.2 + QP5.dll 5.135 - нет ошибки "The string initializer has a value which is too long", но есть проблемы с форматированием.

TOAD 9.5.7.2 + QP5.dll 5.143 - нет ошибки "The string initializer has a value which is too long" и нет проблем с форматированием.

Остается единственная рабочая конфигурация TOAD 9.5.7.2 + QP5.dll 5.143.
9 сен 10, 14:33    [9411265]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с компиляцией пакета в TOAD 10.5.1.3  [new]
Denis Popov
Member

Откуда: Санкт-Петербург
Сообщений: 7862
Dany305
TOAD 10.5.1.3 почему-то считает, что русские символы занимают по два байта.
В старом TOAD все компилируется. Кто что посоветует?

Исправили в TOAD 10.6.0.42, теперь все работает и на юникодной базе если NLS_LENGTH_SEMANTICS=CHAR.
17 сен 10, 11:13    [9455315]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить