powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Нулевой счетчик итераций
13 сообщений из 13, страница 1 из 1
Нулевой счетчик итераций
    #36763124
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создаю в Reports Builder SQL Query, заношу в него запрос с созданием временной таблицы:
Код: 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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
CREATE GLOBAL TEMPORARY TABLE notactive
ON COMMIT PRESERVE ROWS
AS
SELECT fi.NAME,
c.contract_number card_number,
c.contract_name,
c.card_expire,
q.contract_number,
q.amount_available,
DECODE(c.contr_status,  14 , 'Card OK',  98 , 'Do not honor') status
FROM
(SELECT a.amount_available, a.contract_number, a.ID ac_id
--sum(abs(acc.item_total)) ttl
FROM acnt_contract a, acc_cycle acc
WHERE
    acc.acnt_contract__oid = a.ID
AND acc.account_name = 'Cl Deposit'
AND acc.date_from >= ROUND(SYSDATE - INTERVAL '10' MONTH, 'MM')
AND a.amnd_state = 'A'
AND a.con_cat = 'A'
AND a.contr_status =  51                                           -- Account OK
AND a.date_open < ROUND(SYSDATE - INTERVAL '10' MONTH, 'MM')
AND a.ccat <> 'C'                                              -- not BUSINESS

GROUP BY a.amount_available, a.contract_number, a.ID
HAVING SUM(ABS(acc.item_total)) =  0 

UNION ALL

SELECT a.amount_available, a.contract_number, a.ID ac_id
FROM acnt_contract a
WHERE
    a.amnd_state = 'A'
AND a.con_cat = 'A'
AND a.contr_status =  51                                           -- Account OK
AND a.date_open < ROUND(SYSDATE - INTERVAL '10' MONTH, 'MM')
AND a.ccat <> 'C'                                              -- not BUSINESS
AND NOT EXISTS (SELECT  1  FROM acc_cycle acc2
            WHERE
               acc2.acnt_contract__oid = a.ID
            AND acc2.account_name = 'Cl Deposit'
            AND acc2.date_from >= ROUND(SYSDATE - INTERVAL '10' MONTH, 'MM')
)

) q, acnt_contract c, f_i fi, serv_pack sp, opt_v_product op

/* appl_product p, */
WHERE c.amnd_state = 'A'
  AND c.acnt_contract__oid = q.ac_id
  AND c.contr_status =  14                    /*, 98 - ?  */  /* card ok only */
  AND c.product = op.appl_product
  AND op.tarif_plan_name <> 'A'
  AND op.fee_year <>  0 
  AND op.amnd_state = 'A'
  AND op.is_active = 'Y'

  AND c.serv_pack__id = sp.ID
  AND sp.amnd_state='A'
  AND sp.code <> 'PRUCREDE-ST1-M'
  AND sp.code NOT LIKE '%-STVP%-M'
  AND sp.code NOT LIKE '%-TST-M'
  AND sp.code NOT LIKE '%-BOX-M'
  AND sp.code NOT LIKE '%-CASE-M'
  AND sp.code NOT LIKE 'SCARD'
  AND fi.ID = c.f_i
  AND fi.amnd_state = 'A'

ORDER BY fi.branch_code
При нажатии ОК пишет: ORA-24333: нулевой счетчик итераций ==> CREATE GLOBAL TEMPORARY TABLE notactive
В чем может быть проблема?
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36763389
flu4u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непонятно, что вы этим хотите добиться? Какой смысл создавать временную таблицу из reports?
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765272
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flu4u,

временная таблица должна создаваться каждый раз при выполнении запроса. Т.к. результаты запроса используются в процедуре. Значит их надо куда-то сохранять. Есть вариант завести постоянную таблицу и очищать её потом. Мне просто интересна природа возникновения ошибки.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765303
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создана таблица постоянная. При попытке записать запрос со вставкой данных в таблицу, появляется ошибка:
Код: plaintext
1.
INSERT INTO addinfo.notactive
   SELECT   fi.NAME, c.contract_number card_number, c.contract_name, ...
Ошибка:
Код: plaintext
The SELECT statement may not contain an 'INTO' clause
В справке написано, что инту не используется. А как тогда вставить результаты запроса в таблиц из билдера? Или может есть способ в самом билдере как-то сохранить результаты?
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765314
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До сих пор непонятно зачем вам создавать таблицу - в SQL Query должен быть запрос типа select.
Его результаты в репорте можете использовать как угодно.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765320
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алымов Анатолий,

а как обратиться к результату запроса?
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765345
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советую хотя бы прочитать первые шаги reports, чтобы не было таких вопросов.
Вводный курс есть на сайте http://baks.gaz.ru/
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765377
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алымов Анатолий,

спасибо большое, очень актуально, когда:
а) надо срочно
б) почти закончился трафик
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36765615
flu4u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-прежнему не очень понятно, чего вы хотите добиться. Вы пишете, что результаты запроса будут использоваться в процедуре. А сам запрос больше не будет использоваться (например, для вывода данных)? Если запрос в дальнейшем больше не будет использоваться, то для чего вам вообще таблицы (временные или постоянные)? Сделайте в вашей процедуре цикл или инициализацию переменных по данному запросу и всё. Если запрос в дальнейшем будет использоваться, то можно создать вычисляемые столбцы на его основе. Если все же нужна временная таблица (зачем - я пока не понял), то можно создать хранимую процедуру, наполняющую временную таблицу, а в reports просто вызывать ее в триггере BeforeReport.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36768137
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsy,

0. Для решения какой задачи, средствами Report Builder, был выбран подход процедура + временная таблица?
1. Забудьте про ms sql подход с созданием/удалением временных таблиц. Здесь он не имеет смысла в 999 случаях из 1000.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36768199
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsy,

тоже не всё прочитал...

DDL-выражения нужно писать в Program-Units, в том числе и текстах триггеров отчёта.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36781362
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решили задачу через другую систему.
...
Рейтинг: 0 / 0
Нулевой счетчик итераций
    #36781384
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flu4u,

результаты запроса используются для вывода результатов и для выполнения определенных действий на результатами

env,

задача такая: выбрать карты по определенным параметрам и заблокировать их. Так вот выборка отрабатывает от получаса до полутора часов, следовательно, запрос нужно запускать только 1 раз, а дальше оперировать с результатами.

OmegaMale,

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


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