Oracle автоматически вставит запись в многозадачный блок - PullRequest
0 голосов
/ 11 июня 2018

Моя таблица выглядит так:

+-------------------+
|Name               |
+-------------------+
|Name1              |
|Name2              |
|Name3              |
|Name1Jr            |
|Name2Jr            |
|Name3Jr            |
+-------------------+

Мой многорядный блок выглядит так:

enter image description here

Что я хотел знатьКак я могу вставить запись, которая имеет такое же имя с Jr после того, как я вставил имя.Например, я вставил Name2, он также вставит Name2Jr в многострочный блок.Вот так:

enter image description here

Я пробовал в триггере после записи:

insert tbl.name into name
from table tbl
where tbl.name = name||'Jr.'

Примечание: Мне нужно получить значение автоматически вставленных данных из базы данных.

1 Ответ

0 голосов
/ 11 июня 2018

Вот один из вариантов.

  • создать блок базы данных
  • установить для его свойства "Стиль навигации" значение "Изменить запись"
  • создать блок-Уровень WHEN-NEW-RECORD-INSTANCE Триггер:

    if :system.trigger_record = 1 and :test.name is null then
       -- do nothing if it is the first record in a form
       null;
    else
       duplicate_record;
       if substr(:test.name, -2) = 'Jr' then
          -- you've duplicated a record which already has 'Jr' at the end - don't do it
          :test.name := null;
       else       
          -- concatenate 'Jr' to the duplicated record
          :test.name := :test.name || 'Jr';
       end if;      
    end if;  
    
  • Запустите форму

...