Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Переход на 10 + ошибка / 11 сообщений из 11, страница 1 из 1
24.11.2006, 10:56
    #34152614
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
При переходе с 9 версии на 10 при выполнении хранимой процедуры возникает ошибка. Привожу кусок трейса :

авторexpression:(/ ftcr1[56, 67], fdecdigits)
evaluates to 690.5600000000000000
let fi004_amt_trxn = 690.5600000000000000
exception : looking for handler
SQL error = -788 ISAM error = 0 error string = = ""
exception : handler FOUND

drop table trows;
exception : looking for handler
SQL error = -206 ISAM error = -111 error string = = "trows"
exception : handler FOUND

drop table tcfmandatorytags;
expression:txt_error
evaluates to
expression:isam_error
evaluates to 0
expression:sql_error
evaluates to -788
raise exception :-788, 0, ""
exception : looking for handler
SQL error = -788 ISAM error = 0 error string = = ""
exception : no appropriate handler


Вот данный кусок в самой процедуре :

Код: plaintext
1.
		Let fi004_amt_trxn = fTcr1[ 56 ,  67 ]/fDecDigits;

Причем те же действия на 9 версии проодят без проблем в отличие от 10.
Для очиски совести сделал пример имитирующий эти действия :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Create DBA procedure "cap".M113533_test()
Define fi004_amt_trxn decimal( 16 , 3 );
Define fDecDigits integer;
Define fTcr1 Char( 699 );

Let fTcr1 = '                                                    000000000069056'
Let fDecDigits =  100 ;
Let fi004_amt_trxn = fTcr1[ 56 ,  67 ]/fDecDigits;
End Procedure

Execute procedure M113533_test()

Drop procedure M113533_test

Он выполняется без проблем...

Описание ошибки :

автор-788

__________________________________________________________

Unknown operator/type.

If you cannot find a direct cause for this internal error, please note all circumstances and contact Informix Technical Support.

Может кто чего посоветует? Или нужно рейзить реквест суппорт информиксу?
...
Рейтинг: 0 / 0
24.11.2006, 11:56
    #34152923
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Если ваш пример выполняетя "без проблем", то что вы будете показывать саппорту ?
Ведь ошибку надо воспроизвести.
Возможно, что вы не нашли правильное место, где формируется ошибка, возможно,что это даже не баг , а фича, т.е. более жесткие требования к SQL или уже не работает неявное преобразование типов, возможно что то еще...
При миграции на другую версию всегда возникают мелкие (иногда и крупные :) неожиданности, которые иногда даже трудно классифицировать.
Вот, пример, когда запрос в 9-ке работает, а в 10-ке выдает ошибку -217
SELECT bp.value_d AS prdate ,bp.Param_id AS param_id
FROM Buhgparams bp, params p
WHERE bp.param_id=p.id
AND (p.code=1 or p.code=2)
ORDER BY bp.prdate
т.е. ранее можно было указывать такой хитрый алиас в ORDER BY , а теперь нет. Может и правильно :)
...
Рейтинг: 0 / 0
24.11.2006, 12:03
    #34152973
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
После апгрейда, статистику на процедуры собирали?
Пересоздать процедуру пробовали?
...
Рейтинг: 0 / 0
24.11.2006, 12:42
    #34153153
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
авторПосле апгрейда, статистику на процедуры собирали?

Как это сделать и что это даст?

авторЕсли ваш пример выполняетя "без проблем", то что вы будете показывать саппорту ?


Это точно :-(

авторВот, пример, когда запрос в 9-ке работает, а в 10-ке выдает ошибку -217


Запросы тут непричем - здесь простое присваивание.

В любом случае попробуем повторить этот баг еще раз и посмотреть где упадет и упадет ли вообще.
...
Рейтинг: 0 / 0
24.11.2006, 12:47
    #34153174
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Петров Андрей авторПосле апгрейда, статистику на процедуры собирали?

Как это сделать и что это даст?
Даже и не смешно, уже.
Как страшно жить. Надеюсь вы не продакшин апгрейдили.
...
Рейтинг: 0 / 0
24.11.2006, 14:24
    #34153617
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Мы вообще ничего не апгрейдили. Мы суппорт который должен разбираться в программе а не в настройках Informix.

Это важно как и что делали при апгрейде?

А насчет повторить ошибку то при запуске той же процедуры повторно ошибка повторяется 1в1 :-( на 10 версии.
...
Рейтинг: 0 / 0
24.11.2006, 14:41
    #34153708
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Петров Андрей авторПосле апгрейда, статистику на процедуры собирали?
Как это сделать и что это даст?

update statistics for procedure

Они перекомпилируются
...
Рейтинг: 0 / 0
24.11.2006, 15:02
    #34153805
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Петров АндрейМы вообще ничего не апгрейдили. Мы суппорт который должен разбираться в программе а не в настройках Informix.Суппорт чего?


Петров АндрейЭто важно как и что делали при апгрейде?Ну есть документация там описана процедура апгрейда, если сделать что-нибудь неправильно -- будут проблемы похожие на вашу.
Стоп, а апгрейд вообще был? Что такое переход на 10-ку?


Петров АндрейА насчет повторить ошибку то при запуске той же процедуры повторно ошибка повторяется 1в1 :-( на 10 версии.А версия какая точно?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
informix@nag:~> echo "Execute procedure M113533_test()
"|dbaccess a

Database selected.


Routine executed.



Database closed.

informix@nag:~> onstat -

IBM Informix Dynamic Server Version  10 . 00 .UC3     -- On-Line -- Up  9  days  06 : 20 : 22  --  36212  Kbytes
...
Рейтинг: 0 / 0
24.11.2006, 16:56
    #34154343
GVF112GVF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Попробуй выполнить явное апеобразование типов !!!
.....

что-то похожее на ... Let fi004_amt_trxn = (integer:: fTcr1[56, 67]) /fDecDigits;

точно не помню ..... нужно смотреть доку ....

С Уважением,
Вадим
...
Рейтинг: 0 / 0
24.11.2006, 16:58
    #34154361
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Да нет проблему таким образом не повторишь как я уже писал... Она возникает только при запуске оригинальной процедуры (которую я здесь НЕ приводил) и падает именно в том же месте.
...
Рейтинг: 0 / 0
27.11.2006, 10:39
    #34156869
onstat-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход на 10 + ошибка
Петров АндрейПри переходе с 9 версии на 10 при выполнении хранимой процедуры возникает ошибка. Привожу кусок трейса :

авторexpression:(/ ftcr1[56, 67], fdecdigits)
evaluates to 690.5600000000000000
let fi004_amt_trxn = 690.5600000000000000
exception : looking for handler
SQL error = -788 ISAM error = 0 error string = = ""
exception : handler FOUND

drop table trows;
exception : looking for handler
SQL error = -206 ISAM error = -111 error string = = "trows"
exception : handler FOUND

drop table tcfmandatorytags;
expression:txt_error
evaluates to
expression:isam_error
evaluates to 0
expression:sql_error
evaluates to -788
raise exception :-788, 0, ""
exception : looking for handler
SQL error = -788 ISAM error = 0 error string = = ""
exception : no appropriate handler


Вот данный кусок в самой процедуре :

Код: plaintext
1.
		Let fi004_amt_trxn = fTcr1[ 56 ,  67 ]/fDecDigits;

Причем те же действия на 9 версии проодят без проблем в отличие от 10.
Для очиски совести сделал пример имитирующий эти действия :

Код: plaintext
1.
2.
3.
4.
5.
Create DBA procedure "cap".M113533_test()
Define fi004_amt_trxn decimal( 16 , 3 );
Define fDecDigits integer;
Define fTcr1 Char( 699 );

[src]Let fTcr1 = '                                                    000000000069056'
Let fDecDigits = 100;
Let fi004_amt_trxn = fTcr1[56, 67]/fDecDigits;
End Procedure

Execute procedure M113533_test()

Drop procedure M113533_test[/src]
Он выполняется без проблем...

Описание ошибки :

автор-788

__________________________________________________________

Unknown operator/type.

If you cannot find a direct cause for this internal error, please note all circumstances and contact Informix Technical Support.

Может кто чего посоветует? Или нужно рейзить реквест суппорт информиксу?

Что бы повторить попробуйте в конец строки
Код: plaintext
1.
Let fTcr1 = '                                                    000000000069056'

добавить еще что нибудь .
Если это баг, то в преобразовании стройчных типов.
Если фича, то усиление контроля над типами.

Попробуйте ввести промежуточную переменную
типа char || varchar, и ей присваивать результат выполнения оператора [].

з.ы.
Кстате, в реальной процедуре у вас вещественное число
а тесте целое.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Переход на 10 + ошибка / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]