Использование таймера
Таймер
Таймер (Timer) – это способ выполнения кода через определенное время. По истечении указанного времени вызывается тригер WHEN-TIMER-EXPIRED, в котором и обрабатывается реакция на запуск таймера.
Таймером очень хорошо пользоваться для непрерывного отслеживания каких-либо действий. Вы также можете использовать таймер как планировщик, закрывая формы по истечении указанного времени, для выполнения автосохранения в форме, для согласованного обновления данных в разных блоках формы и т.д.
Изменение VISUAL_ATTRIBUTE для позиции в строке блока
SET_ITEM_INSTANCE_PROPERTY — установить свойства экземпляра элемента.
set_item_instance_property('NAME_BLOCK.NAME_ITEM', CURRENT_RECORD, VISUAL_ATTRIBUTE,'NAME_VISUAL_ATTRIBUTE');
Создать дубликаты строк
with t as ( select 'a' a, 2 n from dual union all select 'b' a, 3 n from dual union all select 'c' a, 5 n from dual union all select 'd' a, 1 n from dual union all select 'e' a, 0 n from dual ) select * from t, table(select collect(level) from dual connect by level<=t.n); A N COLUMN_VALUE - ---------- ------------ a 2 1 a 2 2 b 3 1 b 3 2 b 3 3 c 5 1 c 5 2 c 5 3 c 5 4 c 5 5 d 1 1 e 0 1 12 rows selected
При n=0, строка останется.
Запретить commit в процедуре
alter session enable commit in procedure; alter session disable commit in procedure;
При попытке выполнить commit произойдет исключение.
Select from PL/SQL table
Пример запроса из коллекции.
-- создаем глобальный тип данных, локальный нельзя использовать create or replace type xx_test_type is object ( id number, descr varchar2(20)); create or replace type xx_test_tab is table of xx_test_type;
Пример заполнения и вывода данных
declare vcollect xx_test_tab := xx_test_tab(); -- инициализация begin -- заполняем данными vcollect.extend; vcollect(vcollect.count) := xx_test_type(1,'test1'); vcollect.extend; vcollect(vcollect.count) := xx_test_type(2,'test2'); -- запрос из коллекции for i in (select * from Table(vcollect) order by id ) loop dbms_output.put_line(i.descr); end loop; end;
Значение строк в одну, через xml функции
with t as ( select 1 as id, 'a' gr from dual union all select 2 as id, 'a' gr from dual union all select 4 as id, 'b' gr from dual ) select rtrim(to_char(sys_xmlagg(xmlelement(id,id ||',')).extract('/ROWSET/ID/text()').getclobval()),',') TEXT from t group by gr; TEXT ------- 1,2 4
Модуль GME/INV — Связка между заданиями и транзакциями
select * from gme_batch_header gbh, gme_material_details gmd, mtl_material_transactions mmt where 1=1 and gbh.batch_type = 0 -- gmd and gmd.batch_id = gbh.batch_id -- mmt and mmt.transaction_source_id = gmd.batch_id and mmt.trx_source_line_id = gmd.material_detail_id -- for test --and trunc(gbh.plan_start_date) > --and gbh.batch_no = --and mmt.attribute_category = and rownum<100;
Удаление всех объектов схемы
Построение команд для удаления объектов
select 'drop '||object_type||' '||object_name ||decode(object_type,'TABLE',' cascade constraints;','TYPE',' force;',';') from user_objects where object_type in ('TABLE','VIEW','SEQUENCE','PACKAGE','PROCEDURE','FUNCTION','TYPE') order by object_type;
Дополнительно можно почистить корзину
-- удалить все объекты из корзины текущего пользователя purge recyclebin;
Использование RECYCLE BIN
В 10 версии добавилась возможность востанавливать удаленные таблицы и индексы используя корзину.
Для того что бы включить\выключить корзину:
-- Отключить корзину для сессии ALTER SESSION SET RECYCLEBIN=OFF; -- Отключить корзину ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE; -- Включить корзину для сессии ALTER SESSION SET RECYCLEBIN=ON; -- Включить корзину ALTER SYSTEM SET RECYCLEBIN=ON SCOPE=SPFILE;
По умолчанию корзина включена.
DML Error Logging
В 10.2 появилось логирование ошибок при выполнение DML команд INSERT, UPDATE, MERGE и DELETE.
Если DML-операция при массовой обработке данных вызывает ошибки при добавлении или изменении, какой либо записи, то вся операция DML будет отменена. Новая инструкция — LOG ERRORS, предназначена для обхода подобных ситуация. Если в процессе выполнения DML операции возникает ошибка, то информация о ней запишется в заранее созданную (при помощи пакета DBMS_ERRLOG) таблицу логов, на которую указывает конструкция LOG ERRORS.
Последние комментарии