Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Чт Июл 18, 2024 18:45  Перенос из массива в массив |
|
Полезность: Нет оценки
|
Коллеги, подскажите, где глянуть вытягивание данных из массива в другой массив. Проблема неопределённых элементах обоих массивов. |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Пт Июл 19, 2024 03:49   |
|
Полезность: Нет оценки
|
У меня в голове закрутилось как минимум два подхода с разными вариациями.
Вы опишите ситуацию свою. Что вы хотите получить, и в чем конкретно трудность возникла. Навскидку я вообще никаких проблем тут не вижу. |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 09:53   |
|
Полезность: Нет оценки
|
Есть массив AccountAnswer в либе FSSP_TYPE в тбп executory_process. На определённом шаге локал подхватывает этот и парсит его с целью добычи всех уникальных счетов находящихся в массиве. Потом я передаю счета в другую ИС получаю от них информацию по счетам и запихиваю обратно в AccountAnswer. Моя проблема в парсинга счетов. Толи у меня глаз запылился, толи фиг его знает э, но у меня постоянная проблема то пустой элемент массива счетов, то пустой элемент массива Account . |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 10:29   |
|
Полезность: Нет оценки
|
ReiAver пишет: | проблема то пустой элемент массива счетов, то пустой элемент массива Account . |
Т.е. визуально элемент массива есть, а операция его не видит или что? |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 10:52   |
|
Полезность: Нет оценки
|
Проблема в том что элементы AccountAnswer заполняются по наличию я пытаюсь проверять по exists, но вылазит ошибка на
месте где я пытаюсь вставить exists "переполнение числа" Я подозреваю, что по длине макроса не проходит, там довольно длинные имена типа : p_data(i). AccountTransactionDatum. AccountNumber |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 11:06   |
|
Полезность: Нет оценки
|
пример кода? |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 11:34   |
|
Полезность: Нет оценки
|
Например : p_data.exists(p_data(idx). AccountTransactionDatum. AccountNumber) выдаёт ошибку "Переполнение числа". |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 11:59   |
|
Полезность: Нет оценки
|
idx как определяется? |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 12:05   |
|
Полезность: Нет оценки
|
Как number, переопределял на integer ничего не поменялось. А записей в массиве p_data всего 3000 |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 12:11   |
|
Полезность: Нет оценки
|
нужно наверное кода побольше, но idx - это first/next?
т.е. вы проверяете номер счет в массиве p_data , идя по циклу idx по массиву p_data? А зачем? |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 12:24   |
|
Полезность: Нет оценки
|
Мне необходимо проверить существование Account Number в элементе массива p_data(idx) . По идее макрос должен возвращать true при наличии. Т. Е я прохожу по p_data нахожу счета и пишу их в массив p_acc, проверяя что счета не повторяются. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 14:16   |
|
Полезность: Нет оценки
|
exists проверяет наличие записи по индексу, а не реквизит массива |
|
 |
ReiAver Участник
Вступление в Клуб: 12.05.2022
|
Пт Июл 19, 2024 14:51   |
|
Полезность: Нет оценки
|
Ок. А как проверять тогда на существование? На null же не проверишь? |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Пт Июл 19, 2024 16:01   |
|
Полезность: Нет оценки
|
В цикле по массиву, если реквизит не индексный.
Т.е. если массив создавался так - p_data(номер счета).какой-то реквизит = ..., тогда можно проверить exists(p_data(номер счета)), а если так p_data(1).Номер_счета = ..., тогда нет |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пн Июл 22, 2024 06:14   |
|
Полезность: Нет оценки
|
ReiAver пишет: | Например : p_data.exists(p_data(idx). AccountTransactionDatum. AccountNumber) выдаёт ошибку "Переполнение числа". |
Естественно. AccountNumber - это не число вовсе, а в общем случае строка. Длиной 20 символов. Потому что включает в себя код ИСО валюты, а коды ИСО для валют-металлов включают буквы.
но не суть. суть в том, что 20 символов - это слишком много!
Массив p_data у вас скорее всего индексируется числом, причём массивы в oracle индексируются маленьким числом - диапазон примерно от -2000000000 до 2000000000, согласитесь, это не 20 символов.
Вам бы лучше индексировать p_data не по числу, а по строке.
А для чего вам проверка exists?
Последний раз редактировалось: Эмиралька (Пн Июл 22, 2024 06:25), всего редактировалось 3 раз(а) |
|
 |
|