Показать сообщение отдельно
Старый 28.11.2008, 18:48   #9  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от AndyD Посмотреть сообщение
Тоже нет.
Да и вызов на сервер шел не из кэша - exec sp_prepexec
ох уж этот сиквел

X++:
 (17:29:55)
    "test_table" ("test_table").
  SQL  .
  SQL: ORA-01476: divisor is equal to zero

 SQL: UPDATE TEST_TABLE SET C=(A/((A/B)*:in1/*1*/)) WHERE (SUBSTR(NLS_LOWER(DATAAREAID),1,3)=NLS_LOWER(:in2)/*'mil'*/)
Для 0.5
X++:
Update Test_table
   Set C = ( A / (  ( A / B ) * :In1 /*0.5*/ ) )
 Where ( substr ( nls_lower ( Dataareaid ), 1, 3 ) = nls_lower ( :In2 ) /*'mil'*/ );
действительно поле чудес:
в оракле естественно этот апдэйт (оба) с константами работает без вопросов.
и с bind-переменными если сделать - то тоже.
Т.е. запрос сформирован правильно, и параметр 0.5 пошёл как надо, а 1 как-то по пути к привязке в бинд-переменную превратился в 0.

Ошибка повторяется до k=10, если больше, то работает.
Если тип k изменить на int - то вообще нет проблем.
__________________
Zhirenkov Vitaly