Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка при выполнении процедуры / 3 сообщений из 3, страница 1 из 1
10.03.2010, 16:41
    #36512153
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при выполнении процедуры
Создаю вот такую процедуру:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
CREATE PROCEDURE "GUZHANOV"."MOVE_MONEY" (
    IN TABLE_NAME1	VARCHAR( 20 ),
    IN DATE_START	DATE,
    IN DATE_END	DATE )
  SPECIFIC "GUZHANOV"."MOVE_MONEY"
  LANGUAGE SQL
  NOT DETERMINISTIC
  EXTERNAL ACTION
  MODIFIES SQL DATA
  CALLED ON NULL INPUT
  INHERIT SPECIAL REGISTERS
BEGIN
declare saldo1 decimal( 22 , 2 );
declare saldo2 decimal( 22 , 2 );
DECLARE dynSQL varchar( 600 );

  FOR GetName as select distinct name from operation.operation
    where ID in ( select ID_OPERATION from OPERATION.ACCOUNT )
    or ID in ( select ID_OPERATION from OPERATION.INPAYMENT )
    or ID in ( select ID_OPERATION from OPERATION.TRANSACTION ) group by name
  DO
  
    SET SALDO1 = (select sum(ot.value) as v from operation.transaction ot 
    where ot.value_date between date(DATE_START) and date(date_end)  
    and ot.id_account_debet is null and ot.id_operation in 
    (select id from operation.operation where name = getname.name));
  
    SET SALDO2 = (select sum(ot.value) as v from operation.transaction ot 
    where ot.value_date between date(DATE_START) and date(date_end)  
    and ot.id_account_debet is not null and ot.id_operation in 
    (select id from operation.operation where name = getname.name));
  
    SET dynSQL = 'insert into '||TABLE_NAME1||' (name, summ) values ('|| getname.name ||', '||decfloat(saldo1-saldo2)||')';
    EXECUTE IMMEDIATE dynSQL;
  
  END FOR;
END

Пытаюсь ее выполнить, передаю параметры при запуске, TABLE_NAME1 = guzganov.temptable. Но получаю ошибку
ERROR [22004] [IBM][DB2/NT64] SQL0087N Host variable "" is a structure used where structure references are not permitted. SQLSTATE=22004

Подскажите, как с этим бороться?
...
Рейтинг: 0 / 0
10.03.2010, 17:28
    #36512308
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при выполнении процедуры
Павел Гужанов,

db2 "? SQL0087N"
SQL0087N A null value was specified in a context where a null value is not allowed.

Т.е. у вас встречается NULL по крайней мере в одном из getname.name, saldo1, saldo2.
...
Рейтинг: 0 / 0
11.03.2010, 11:07
    #36513392
Павел Гужанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ошибка при выполнении процедуры
спасибо, помогло
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка при выполнении процедуры / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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