powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка при выполнении процедуры
3 сообщений из 3, страница 1 из 1
ошибка при выполнении процедуры
    #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
ошибка при выполнении процедуры
    #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
ошибка при выполнении процедуры
    #36513392
Павел Гужанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, помогло
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / ошибка при выполнении процедуры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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