powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / function в 8.2
7 сообщений из 7, страница 1 из 1
function в 8.2
    #35743348
oldkeybo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функция вида
Код: 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.
37.
38.
39.
40.
CREATE FUNCTION "EXPORT"."B_TKCONTAINER" ( "TYPE_DEF"	SMALLINT )
     RETURNS TABLE (
...........................
BEGIN ATOMIC 
DECLARE................

RETURN
WITH T AS (
  SELECT A.TKCONTAINER TKCONTAINER
	FROM (SELECT TKCONTAINER, MIN(TKSESS) S1, MAX(TKSESS) S2 
FROM POLICY.POLCONTSESS WHERE TKEXPORT BETWEEN MIN_TKEXPORT_VAR AND MAX_TKEXPORT_VAR GROUP BY TKCONTAINER) S ,
POLICY.A1AGRE A 
)
SELECT 
	EXPORT.A1AGRX_CONVTYPE ( T.TKCONTAINER ),
	EXPORT.A1AGRS_STATUS ( T.TKCONTAINER ) AS GRS_STATUS,
	EXPORT.A1AGRS_SUBSTATUS ( T.TKCONTAINER ) AS GRS_SUBSTATUS,
	EXPORT.A1AGRS_STARTTS ( T.TKCONTAINER, TYPE_DEF, SUBTYPE_DEF ) AS GRS_STARTTS,
	EXPORT.A1AGRS_STARTTS_OFF ( T.TKCONTAINER ) AS GRS_STARTTS_OFFER ,
	EXPORT.A1AGRR_PAYMENTMETH ( T.TKCONTAINER ) AS GRR_PAYMENTMETHOD,
	EXPORT.A1PPLE_PAYMENTTYPE ( T.TKCONTAINER ) AS PPLE_PAYMENTTYPE ,
	EXPORT.A1PEPE_PENSIONFREQ ( T.TKCONTAINER ) AS PEPE_PENSIONFREQUENCY ,
	EXPORT.A1BENC_UNREVOKABLE ( T.TKCONTAINER ) AS BENC_UNREVOKABLE ,

	EXPORT.A1AGRE_PLEDGED ( T.TKCONTAINER ) AS AGRE_PLEDGED ,
	EXPORT.A1PPL_INDEXTYPE ( T.TKCONTAINER ) AS PPL_INDEXTYPE ,
	EXPORT.A1PPL_INDEXVALUE ( T.TKCONTAINER ) AS PPL_INDEXVALUE ,
	EXPORT.A1LBCO_COMPANYID ( T.TKCONTAINER ) AS LBCO_COMPANYID,  
	EXPORT.A1LBCO_COMPANYID_P ( T.TKCONTAINER ) AS LBCO_COMPANYID_PREV ,
	EXPORT.A1SDAE_AGENTID_1 ( T.TKCONTAINER ) AS SDAE_AGENTID_FIRST ,
	EXPORT.A1SDAE_AGENTID_CUR ( T.TKCONTAINER ) AS SDAE_AGENTID_CURRENT ,
	EXPORT.C1CLNT_AGRR20 ( T.TKCONTAINER ) AS CLNT_EXTID_AGRR20 ,
	EXPORT.C1CLNT_AGRR10 ( T.TKCONTAINER ) AS CLNT_EXTID_AGRR10 ,
	EXPORT.C1CLNT_PROR10 ( T.TKCONTAINER ) AS CLNT_EXTID_PROR10 ,
	EXPORT.C1CLNT_AGRR70 ( T.TKCONTAINER ) AS CLNT_EXTID_AGRR70 ,
	EXPORT.A1AGRR_PERSON_COMP ( T.TKCONTAINER ) AS AGRR_PERSONORCOMPANY ,
	EXPORT.A1PROR_BIRTHDATE ( T.TKCONTAINER ) AS PROR_BIRTHDATE,
	EXPORT.A1PROR_SEX ( T.TKCONTAINER ) AS PROR_SEX
	FROM T
;
END;

нормально формируется и работает в 9.5 версии.
В 8.2 компилируется но не работает
Причина The statement is too long or too complex
Уменьшение колличества фунций внутри (до 6) помогает , но мне нужны все значения.
Отчего такое ограничения на использование функций?
Посоветуйте, как решить проблему
Благодарю за внимание
...
Рейтинг: 0 / 0
function в 8.2
    #35743548
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В подобных случаях всегда начинайте со чтения хелпа по коду ошибки (SQLxxxxxx) - нередко там даётся полезный совет (быть может, нужно какой-нибудь параметр подкрутить - там будет написано, какой).

Кроме того, в письмах здесь советую приводить сообщение целиком. Кроме кода ошибки (без которого вообще нельзя), в некоторых сообщениях приводится reason code, который тоже важен.
...
Рейтинг: 0 / 0
function в 8.2
    #35745007
oldkeybo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за совет, но сообщение об ошибке не особенно продвинуло

SQL0101N
The statement is too long or too complex.
User Response:

Either:

* Break the statement up into shorter or less complex SQL statements.
* Increase the size of the statement heap (stmtheap) in the database configuration file.
* Reduce the number of check or referential constraints involved in the statement or reduce the number of indexes on foreign keys.
* Reduce the number of triggers involved in the statement.
* Federated system users: determine which data source is failing the statement (see the problem determination guide for procedures to follow to identify the failing data source) and determine the cause of the rejection. If the rejection is coming from the federated server, increase the size of the statement heap (stmtheap) in the database configuration file.

Кофигурация сервера , как тригера с констрейнтами не в моей власти, так что надо коротить запрос. Отчего же в 9.5 это работает?
...
Рейтинг: 0 / 0
function в 8.2
    #35745061
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oldkeyboОтчего же в 9.5 это работает?1. Компилятор запросов (и использование им памяти) мог измениться.
2. Что у вас на обеих версиях на серверах выдают команды:
db2 get db cfg for your_dbname show detail | grep STMTHEAP
(для винды запускать из db2cmd и фильтровать вместо grep: find "STMTHEAP")
?
...
Рейтинг: 0 / 0
function в 8.2
    #35745419
oldkeybo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9.5 сервер выдает
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC(2048) AUTOMATIC(2048)

8.2 - выдает
SQL statement heap (4KB) (STMTHEAP) = 2048 2048
...
Рейтинг: 0 / 0
function в 8.2
    #35748016
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oldkeybo
* Increase the size of the statement heap (stmtheap) in the database configuration file.

Самое очевидное место. Если вы не можете менять параметр сами, то, по крайней мере, можете попросить админа. Быть может, имеет смысл поднять тестовую базу где-то ещё, где у вас будет возможность что-то менять в конфигурации, убедиться в необходимости и доказать админу.
...
Рейтинг: 0 / 0
function в 8.2
    #35750675
Vladimir Kiselev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
oldkeybo,

вот и ответ, практически. Надо увеличить STMTHEAP, у нас, обычно это помогает.
У Вас AUTOMATIC на 9.5 и статический на 8.2
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / function в 8.2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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