Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Конкатенация и запись данных в таблицу / 2 сообщений из 2, страница 1 из 1
06.02.2014, 12:20
    #38551659
Конкатенация и запись данных в таблицу
Добрый день уважаемые программисты. Прошу направить на путь истинный)

Проблема заключается в не корректной записи данных в таблицу после склеивания результатов.

У меня есть 2-е таблицы. 1) Контакты. 2) События

В таблице контакты у меня вот такие данные
Поле ID и поле Email

ID Email
10 mail1@mail.ru
11 mail2@mail.ru
11 mail3@mail.ru
12 mail4@mail.ru

В таблицу событе по такому же id нужно чтоб записалось вот в таком виде, но с условием. Что если событие по id, что если событие было то сделать его UPDATE если нет, то INSERT. И получится должно вот так.

ID Email
10 mail1@mail.ru
11 mail2@mail.ru,mail3@mail.ru
12 mail4@mail.ru
---------------------------------------------------------------------------------------------------------
А получается постоянно вот так
ID Email
10 mail1@mail.ru
11 mail1@mail.ru,mail2@mail.ru,mail3@mail.ru
12 mail1@mail.ru,mail2@mail.ru,mail3@mail.ru,mail4@mail.ru
---------------------------------------------------------------------------------------------------------
Реализацию делаю вот таким образом, но понимаю что условие не правильно работает, так как не могу сообразить как определить ID и прогонять по нему.

Код: plsql
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.
for i in 1..mailSen.count loop
     if(mailSen(i) is not null) then       
      
       SELECT t.contact_email, t.company_id into email, id_company_card FROM investors_contact_cards t WHERE t.contact_id = mailsen(i);  
     
          
         
          SELECT count(i.id_company) INTO id_event_company FROM investors_events i WHERE i.id_company = id_company_card;
                     
          IF (id_event_company = 1) THEN
             email_add := email_add ||','|| email;
             UPDATE investors_events s SET s.question = sendText, s.zgoda = email_add WHERE s.id_company = id_company_card;                       
          ELSE
             email_add := null;
             email_add := email_add ||','|| email;
             INSERT INTO investors_events i
                (ID_COMPANY, DATE_EVENTS, PLACE, AMOUNT, QUESTION, EVENT_TYPY, ZGODA, ID)
             VALUES
                (id_company_card, to_date(sendData,'dd.mm.yyyy'), null, null, sendText, 3, email_add, GET_ID_INV_TYPE.NEXTVAL);
          
          END IF;




        htp.p(id_company_card ||' - '||email_add||'<br/>');

     

       end if;
       email_add := null;
    end loop;
    commit;


   
    exception when others then htp.p('sendMailContact:'||sqlerrm);
END;
...
Рейтинг: 0 / 0
06.02.2014, 14:15
    #38551856
Конкатенация и запись данных в таблицу
Извините, вопрос снят, проблема решена.
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Конкатенация и запись данных в таблицу / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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