powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание дополнительной проверки результата импорта данных
13 сообщений из 13, страница 1 из 1
Создание дополнительной проверки результата импорта данных
    #39135680
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача - доработать приложение.
Требуется проверка на уникальность значений, имеются такие идеи:
1. В случае если данные дублируются выдавать уведомление о задвоении данных и блокировать следующий шаг заливки.
2. После успешного импорта выполнять проверку по количеству и суммам импортированных и в итоге сохранения строк. Если не совпадают - уведомление.
Реально ли такое реализовать и как? Я только начинаю разрабатывать приложения средствами APEX, и пока сложно понимать что и куда прикрутить.
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39135750
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaaРеально ли такое реализовать и как?
лучше доверять серверу и учиться писать на нём:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
begin

  for импорт цикл
     begin
       insert ....
       i := i+1;
     exception данные уже есть
        лог.данные уже есть
        is_errors := true
     end;
  конец цикла
  if is_errors
    raise ---"блокировать следующий шаг заливки."
  else
    После успешного импорта выполнять проверку по количеству и суммам импортированных и в итоге сохранения строк.
  end if;

  

end;
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39135755
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaa,
ещё можно откатить при одной ошибке или импортировать всё что смогло залиться
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39135950
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

а если указать условия в кнопке на этапе проверки данных перед этапом результата загрузки?
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39135973
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaaPetro123,

а если указать условия в кнопке на этапе проверки данных перед этапом результата загрузки?
где именно в кнопке?
Condition - условие для показа кнопки на экран.
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39139181
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
проверка на уникальность должна осуществляться только по данным, которые заливаются, именно на этапе заливки.
вот пример данных заливки
В поле ID не должно быть повторений, вернее только по три одинаковых значения.
Отдельным процессом прописывать или валидацию подключать?
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39139189
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
извиняюсь, в поле OWID без повторений...
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39139220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaaпроверка на уникальность должна осуществляться только по данным, которые заливаются, именно на этапе заливки.
вот пример данных заливки
- переведи. Я разве не на этапе заливики написал? И не данные заливки проверяю?
- скрин это у тебя БД? Приведи схему БД
- приведи откуда заливка и формат данных
vvivaaВ поле XXXXXX не должно быть повторений, вернее только по три одинаковых значения.
БД знаем? Если не знаем как перевести вашё фразу для БД, то не стоит программировать.
У БД нет понятия "только по три одинаковых значения".
Что означает OWID?
..
Сформулируйте ещё раз задачу, схему БД и ответы на вопросы.
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39139473
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

прошу извинить и понять что я только учусь... мне дали задачу и я пытаюсь ее решить, очень надеюсь на помощь)

вот таким кодом заливаются данные

merge into stat.tn_lines l
using (select * from stat.tn_lines_import where not m0||m1||m2||m3||m4||m5||m6||m7||m8||m9||m10||m11||m12 is null and nvl(username,V('APP_USER'))=V('APP_USER') ) t on (t.year=l.year and to_number(replace(replace(t.ownerid,'.',','),' ',''))=l.ownerid and to_number(replace(replace(t.itemcode,'.',','),' ',''))=l.itemcode)
when matched then update
set
l.m0=nvl(to_number(replace(replace(t.m0,'.',',') ,' ','')),0)
,l.m1=nvl(to_number(replace(replace(t.m1,'.',',') ,' ','')),0)
,l.m2=nvl(to_number(replace(replace(t.m2,'.',',') ,' ','')),0)
,l.m3=nvl(to_number(replace(replace(t.m3,'.',',') ,' ','')),0)
,l.m4=nvl(to_number(replace(replace(t.m4,'.',',') ,' ','')),0)
,l.m5=nvl(to_number(replace(replace(t.m5,'.',',') ,' ','')),0)
,l.m6=nvl(to_number(replace(replace(t.m6,'.',',') ,' ','')),0)
,l.m7=nvl(to_number(replace(replace(t.m7,'.',',') ,' ','')),0)
,l.m8=nvl(to_number(replace(replace(t.m8,'.',',') ,' ','')),0)
,l.m9=nvl(to_number(replace(replace(t.m9,'.',',') ,' ','')),0)
,l.m10=nvl(to_number(replace(replace(t.m10,'.',','),' ','')),0)
,l.m11=nvl(to_number(replace(replace(t.m11,'.',','),' ','')),0)
,l.m12=nvl(to_number(replace(replace(t.m12,'.',','),' ','')),0)
,l.username='VVIVAA'
,l.saved=sysdate
,l.CURID=t.CURID


ownerid - код бюджета, itemcode - код статьи
id присваивается после заливки
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39139502
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaa,
вам надо без всякого APEX разобраться с этим в ветке Оракла
Код: sql
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.
  merge into stat.tn_lines l
  using (
            select * from stat.tn_lines_import 
            where not m0||m1||m2||m3||m4||m5||m6||m7||m8||m9||m10||m11||m12 is null 
            and nvl(username,V('APP_USER'))=V('APP_USER') ) t 
            on (
                  t.year=l.year 
                  and to_number(replace(replace(t.ownerid,'.',','),' ',''))=l.ownerid 
                  and to_number(replace(replace(t.itemcode,'.',','),' ',''))=l.itemcode
                )
  when matched then updateset
    l.m0=nvl(to_number(replace(replace(t.m0,'.',',') ,' ','')),0)
    ,l.m1=nvl(to_number(replace(replace(t.m1,'.',',') ,' ','')),0)
    ,l.m2=nvl(to_number(replace(replace(t.m2,'.',',') ,' ','')),0)
    ,l.m3=nvl(to_number(replace(replace(t.m3,'.',',') ,' ','')),0)
    ,l.m4=nvl(to_number(replace(replace(t.m4,'.',',') ,' ','')),0)
    ,l.m5=nvl(to_number(replace(replace(t.m5,'.',',') ,' ','')),0)
    ,l.m6=nvl(to_number(replace(replace(t.m6,'.',',') ,' ','')),0)
    ,l.m7=nvl(to_number(replace(replace(t.m7,'.',',') ,' ','')),0)
    ,l.m8=nvl(to_number(replace(replace(t.m8,'.',',') ,' ','')),0)
    ,l.m9=nvl(to_number(replace(replace(t.m9,'.',',') ,' ','')),0)
    ,l.m10=nvl(to_number(replace(replace(t.m10,'.',','),' ','')),0)
    ,l.m11=nvl(to_number(replace(replace(t.m11,'.',','),' ','')),0)
    ,l.m12=nvl(to_number(replace(replace(t.m12,'.',','),' ','')),0)
    ,l.username='VVIVAA'
    ,l.saved=sysdate
    ,l.CURID=t.CURID


- переписать запрос чтобы там не было повторов-ошибки
- в крайнем случае сделать курсором, где в цикле будете всё проверять.
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39206154
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
переписала немного процедуру заливки.
Создала селектлист P6_SCHEMA на выбор схемы.
Код: plsql
1.
select distinct schema v, schema r from fin.bp_versions where isfact=0 



В процессе на кнопке пишу след код и ничего не срабатывает. Посмотрите пожалуйста логику, мне кажется что ошибка именно здесь.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare 
p_schema varchar (10);
p_username varchar (30);
begin

if v('APP_USER') in ('IIVANOV) then p_username:= v('APP_USER');
else p_username:= :P6_USERNAMEALL;

end if;

fin.pp_bplines_import (:P6_SCHEMA, p_username);


end;
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39206158
vvivaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare 
p_schema varchar (10);
p_username varchar (30);
begin

if v('APP_USER') in ('IIVANOV') then p_username:= v('APP_USER');
else p_username:= :P6_USERNAMEALL;

end if;

fin.pp_bplines_import (:P6_SCHEMA, p_username);


end;
...
Рейтинг: 0 / 0
Создание дополнительной проверки результата импорта данных
    #39206169
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvivaaВ процессе на кнопке пишу след код и ничего не срабатывает. Посмотрите пожалуйста логику, мне кажется что ошибка именно здесь.
извините, но искать номер строки где НЕ работает обязанность программиста.
Проверяйте построчно код. Есть разные способы отладки и поиска ошибки.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание дополнительной проверки результата импорта данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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