Category: Oracle

  • Наконец-то разобрался как вызывать хранимые PL/SQL процедуры/функции из ADF, и для тех кто тоже хочет разобраться, но еще этого не сделал (а также для себя, чтобы не забыть), я написал это пошаговое руководство. За основу приложения взят пример из учебника “Developing Rich Web Applications With Oracle ADF” для стандартной демо-схемы БД Oracle HR. 1) В…

  • На которой я почему-то залипаю (при том что знаю решение): Есть таблица: create table t  (id number,   field_name varchar2(20),   string_value varchar2(20),   number_value number);   insert into t (id, field_name, string_value, number_value)  values (1, ‘Name’, ‘John’, null);insert into t (id, field_name, string_value, number_value)  values (1, ‘Surname’, ‘Smith’, null);  insert into t (id, field_name, string_value, number_value)  values (1,…

  • Делал это для подгрузки данных в Oracle из дампов. Может кому пригодится. Сначала создаем 2 таблицы: create table tmp_dbobj (name varchar2(50), otype varchar2(50)); create table tmp_cons_log (cname varchar2(50), ctype varchar2(1), tname varchar2(50), err_text varchar2(2000), cols varchar2(1000), vals varchar2(1000)); Отключаем: –Выключение констрейнтов declare vDDL varchar2(2000); begin –triggers for c_trg in (select * from user_triggers where status…

  • В рамках программы восстановления утраченных знаний, написал пример использования dbms_sql: DECLARE  cSQL NUMBER; –Идентификатор курсора  vSubjOld NUMBER := 000000; –Старый ID  vSubjNew NUMBER := 111111; –Новый ID  vSQL VARCHAR2(1000);  vID NUMBER;  vUpdateSQL VARCHAR2(1000);   vRet NUMBER;BEGIN  –Курсор по таблицам с полями которые нужно обработать  FOR c_tab IN (SELECT DISTINCT tb.TABLE_NAME, cl.COLUMN_NAME                   FROM user_tab_columns cl,                      …

  • Для себя, чтобы не забыть как это делается. Трассировка SQL: 1) Включаем трассировку ALTER SESSION SET SQL_TRACE = TRUE;2) Выполняем запрос3) Выключаем трассировку4) Профилируем трассировочный файл (каталог в параметре user_dump_dest) командой tkprof <in_file> <out_file> explain=plsql/oracle sort=<exeela/plsela/fchela> Трассировка PL/SQL 0) Создаем под SYS’ом трассировочные представления (файл <home>rdbmsadmintracetab)1) ALTER SESSION SET PLSQL_DEBUG = TRUE;2) ALTER [PROCEDURE |…

  • Странно, что никто из читающих мой блог этого не заметил (а некоторые, я знаю точно, должны были). Дело в том что метод описанный мной в посте Оптимизация “исторического” отчета в Oracle вызывает мутации таблиц (ORA-4091). Далее я, в кратце опишу как с этим бороться (интересующиеся могут посмотреть решение у Тома Кайта тут, суть моего решения…