Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание дополнительной проверки результата импорта данных / 13 сообщений из 13, страница 1 из 1
23.12.2015, 12:05
    #39135680
vvivaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
Есть задача - доработать приложение.
Требуется проверка на уникальность значений, имеются такие идеи:
1. В случае если данные дублируются выдавать уведомление о задвоении данных и блокировать следующий шаг заливки.
2. После успешного импорта выполнять проверку по количеству и суммам импортированных и в итоге сохранения строк. Если не совпадают - уведомление.
Реально ли такое реализовать и как? Я только начинаю разрабатывать приложения средствами APEX, и пока сложно понимать что и куда прикрутить.
...
Рейтинг: 0 / 0
23.12.2015, 12:26
    #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
23.12.2015, 12:27
    #39135755
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
vvivaa,
ещё можно откатить при одной ошибке или импортировать всё что смогло залиться
...
Рейтинг: 0 / 0
23.12.2015, 13:38
    #39135950
vvivaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
Petro123,

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

а если указать условия в кнопке на этапе проверки данных перед этапом результата загрузки?
где именно в кнопке?
Condition - условие для показа кнопки на экран.
...
Рейтинг: 0 / 0
28.12.2015, 11:52
    #39139181
vvivaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
Petro123,
проверка на уникальность должна осуществляться только по данным, которые заливаются, именно на этапе заливки.
вот пример данных заливки
В поле ID не должно быть повторений, вернее только по три одинаковых значения.
Отдельным процессом прописывать или валидацию подключать?
...
Рейтинг: 0 / 0
28.12.2015, 11:54
    #39139189
vvivaa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
Petro123,
извиняюсь, в поле OWID без повторений...
...
Рейтинг: 0 / 0
28.12.2015, 12:34
    #39139220
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
vvivaaпроверка на уникальность должна осуществляться только по данным, которые заливаются, именно на этапе заливки.
вот пример данных заливки
- переведи. Я разве не на этапе заливики написал? И не данные заливки проверяю?
- скрин это у тебя БД? Приведи схему БД
- приведи откуда заливка и формат данных
vvivaaВ поле XXXXXX не должно быть повторений, вернее только по три одинаковых значения.
БД знаем? Если не знаем как перевести вашё фразу для БД, то не стоит программировать.
У БД нет понятия "только по три одинаковых значения".
Что означает OWID?
..
Сформулируйте ещё раз задачу, схему БД и ответы на вопросы.
...
Рейтинг: 0 / 0
28.12.2015, 16:27
    #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
28.12.2015, 16:51
    #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
01.04.2016, 15:24
    #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
01.04.2016, 15:27
    #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
01.04.2016, 15:38
    #39206169
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание дополнительной проверки результата импорта данных
vvivaaВ процессе на кнопке пишу след код и ничего не срабатывает. Посмотрите пожалуйста логику, мне кажется что ошибка именно здесь.
извините, но искать номер строки где НЕ работает обязанность программиста.
Проверяйте построчно код. Есть разные способы отладки и поиска ошибки.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание дополнительной проверки результата импорта данных / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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