Oracle SQL

Фильтр по тегу: oracle


mini GItHub на ORACLE

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

Название интересное, но это не важно...
на самом это деле небольшая система аудита для заданной схемы на БД.
для начала создадим таблицу для аудита

create table a_code(
  username varchar2(50)
, os_user  varchar2(50)
, date_changed date
, object_type varchar2(50)
, object_name varchar2(50)
, user_source clob
); 


добавим функционал для поддержки версионности

create or replace trigger A_CODE_trigger
  before create on schema
declare
  l_date  date := sysdate;
  l_ver   number;
  l_user  varchar2(20);
  l_cl    clob;
begin
  if (ora_dict_obj_type in
            ( 'PACKAGE'
             ,'PACKAGE BODY'
             ,'PROCEDURE'
             ,'FUNCTION' ) )
  then
    select sys_context( 'userenv', 'os_user' ) into l_user from dual;
    l_cl := '';
    for i in (
    SELECT * FROM user_source
     where name = ora_dict_obj_name
       and type = ora_dict_obj_type order by user_source.LINE
       )  loop   
        l_cl := l_cl||i.text;
       end loop;
    insert into a_code(username , os_user  , date_changed, object_type, object_name, user_source) 
    values (user, l_user , sysdate, ora_dict_obj_name, ora_dict_obj_type, l_cl);
  end if;
end;
/

мы знаем когда и кто менял код, а так же сохраняем разные версии данного кода
добавлено: 21 дек 17 просмотры: 3828, комментарии: 2



Oracle 12c и JSON немножечко...

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

немного про JSON и ORACLE 12
create table info_user_v (
  id number primary key -- иднтификатор уникальный
, name varchar2(50) -- наименование 
, json_data varchar2(4000) -- данные JSON 
);


в oracle 12 есть специальное ограничение, чтобы добавлять в поле только данные json формата, и чтобы исключить ошибки со структурой JSON
добавим его к нашей таблице
alter table info_user_v add constraint c_1_json_data check(json_data is json);


читать дальше...
добавлено: 05 окт 17 просмотры: 4543, комментарии: 0



Использование GUID в ORACLE

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

GUID некоторая уникальная последовательность символов, в некоторых случаях, может использоваться в качестве первичного ключа.
Рассмотрим основные работы с GUID в ORACLE.

Получить GUID в ORACLE можно, воспользовавшись функцией
sys_guid()
запрос в этом случае будет выглядеть следующим образом
select sys_guid() from dual

результат
4A9B3CF364FB92CAE050A8C0670A0D3A
Для получения GUID в PL SQL используются несколько аналогичная команда
Следует так же отметить, что для ранения GUID в ORACLE используются следующие типы данных
raw(16) и varchar2(32);

следующие примеры демонстрируют работу c GUID в PL/SQL ORACLE
declare
  p_raw raw(16); 
begin
  p_raw := sys_guid;
  dbms_output.put_line(p_raw);
end;

результат 4A9B3CF3650092CAE050A8C0670A0D3A

declare
  p_vc2 varchar2(32);
begin
  p_vc2 := sys_guid;
  dbms_output.put_line(p_vc2);
end;

результат 4A9B3CF3652292CAE050A8C0670A0D3A
читать дальше...
добавлено: 13 мар 17 просмотры: 4804, комментарии: 2



Заливаем дамп с Oracle Enterprise на OracleXE

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA
в создании данного материала мне помог мой коллега Куракин Роман
в данном материале упоминается дамп для одной схемы, но, для нескольких схем, дамп заливается аналогично

1. Cнимаем дамп на источнике
#>expdp schemas=USER1 dumpfile=dampfiledat.dmp

(пользователь sys as sysdba пароль /)

Дамп будет создан в папке
  /ora_home/oracle/admin/orcl/dpdump/


2. Переносим дамп на компьютер, где установлен OraceXE в аналогичную папку
например
c:\oraclexe\app\oracle\admin\XE\dpdump\expdat.dmp для Windows
        или    /u01/app/oracle/admin/XE/dpdump/expdat.dmp для *nix 
систем

3. создаем пользователя на XE
create tablespace U_tbl datafile 'user1.dat' size 300M autoextend on;

create temporary tablespace U_TEMP tempfile 'U_temp.dat' size 600M autoextend on;

create user USER1 identified by password1 default tablespace U_tbl  temporary tablespace U_TEMP;

grant create session to USER1;

grant create table to USER1;

grant unlimited tablespace to USER1;

grant connect to USER1;

grant resource to USER1;

если необходимо 

grant dba to USER1;


4. Если пользователь уже существует и содержит старые данные то удаляем пользователя и создаем заново, табличное пространство пересоздавать не надо:

* drop user USER1 cascade;


5. После того как пользователь был создан, производим заливку дампа с автоматической конвертацией:

#> impdp USER1/password1 schemas=USER1 dumpfile=expdat.dmp transform=SEGMENT_CREATION:N PARTITION_OPTIONS=MERGE
добавлено: 30 янв 17 просмотры: 1536, комментарии: 4



Анализ отчетов AWR

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

Анализ отчетов AWR


1.Что такое AWR отчеты
2. Для чего используются AWR отчеты
3. Построение AWR отчетов
4. Системные представления AWR репозитория отчетов
5. AWR отчет в формате HTML
6. Основные параметры отчетов AWR
7. На что еще следует обратить внимание!

1. Что такое AWR отчеты

Automatic Workload Repository представляет из себя набор внутренних таблиц словаря данных БД Oracle и специальный фоновый процесс MMON, который появился в версии Oracle10g.
Периодически AWR создает статистическую копию (снимок) и сохраняет информацию в таблицах расположенных в табличном пространстве SYSAUX. По умолчанию регулярный период сбора установлен на 60 минут. Это значение может быть уменьшено до 10 минут при желании. Механизм сбора статистической копии (awr snapshot) установлен в базе данных 10G по умолчанию и в отличии от пакета statspack установки на автоматический сбор информации не требуется.

Скрипт формирования AWR заполняет специальный AWR репозиторий набор таблиц и представлений словаря данных Oracle помощью специального системного процесса NMON.


2.Для чего используются AWR отчеты

Automatic Workload Repository (AWR) используется для сбора статистики производительности, включая:

Время ожидания ресурсов базы данных (foreground и background wait events). Эту статистическую информацию можно использовать для первоначального определения 'узких' мест в производительности базы данных
читать дальше...
добавлено: 01 ноя 16 просмотры: 12628, комментарии: 0



Обзор инcтрументов разработки для разных СУБД

Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

Данный блог посвящен ORACLE , но многие ORACLE специалисты ,в своей работе сталкиваются с задачами связанными с прочими СУБД
и поэтому, представляю вашему вниманию
Краткий обзор лучших с моей точки зрения инструментов для работы с различными СУБД

На исключительную полноту данный пост не претендует , но самые интересные утилиты я постараюсь разобрать

SQLLITE
Достаточно популярная в последнее время СУБД. Получила мощный импульс развития в основном за счет роста рынка мобильных устройств на ОС Андроид, IOS и планшетов.

Инструмент
SQLiteStudio - качественный . бесплатный и удобный инструмент

возможности :
просмотр списка объектов базы
* визуальный редактор таблиц, представлений , триггеров, индексов.
* редактор запросов
* редактор функций
* огромное количество дополнительных модулей и плагинов

ссылка на сайт программы
http://sqlitestudio.pl

MYSQL
используется на ВЕБ порталах. самая распространенная СУБД на сегодняшний день
что же можно посоветовать разработчику MYSQL, корме стандартного PHP MYADMIN ?

для разработки под MYSQL я рекомендую MySQL Query Browser
программа бесплатна
имеет широкие возможности как для создания запросов и таблиц , так собственно и для администрирования сервера MY SQL
* редактор таблиц
* обозреватель баз данных
* редактор индексов
* и удобный редактор запросов
так же расскажу о другом инструменте
инструкция на русском языке
http://ftp.nchu.edu.tw/MySQL/doc/query-browser/ru/index.html
ссылка на сайт программы
http://dev.mysql.com/downloads/gui-tools/5.0.html
читать дальше...
добавлено: 13 сен 13 просмотры: 12557, комментарии: 3



Динамический SQL в Oracle - легко и понятно (часть вторая - курсоры FETCH , Close , Open FOR )

Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

Использование курсоров в динамическом SQL, команды FETCH и CLOSE
Для работы с динамическим запросом который возвращает несколько строк используются курсоры . Работа с курсорами - это всего три команды: OPEN-FOR , FETCH и CLOSE .

Сначала , вы с помощью команды OPEN, открываете переменную курсора, далее в цикле FOR последовательно считываете результат запроса из нескольких строк запроса. В каждой итерации цикла FOR, вызывается команда FETCH которая считывает из результирующего набора по одной записи. Когда все строки обрабатываются, вы закрываете курсор вызывая метод CLOSE для переменной курсора.
читать дальше...
добавлено: 07 сен 13 просмотры: 38906, комментарии: 2



Как убить сессию запросом Oracle 11g Release 11.2.

Чалышев М.М www.orasource.ru
изучаем SQL группа в контакте - присоединяйтесь
Подари, продай, обменяй - множество недорогих и отличных вещей: объявления вместо AVITO - ВКонтакте
Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

следующий запрос убивает и вешает сессию наглухо
select x.id,
       rtrim(xmlagg(xmlelement("a",x.recno||';')).extract('//a/text()').getStringVal(),';') as recno,
       min(recno)
  from
  (select 1 as id, 101 as recno from dual
  union all
  select 2 as id, 102 as recno from dual
  union all
  select 3 as id, 103 as recno from dual
  union all
  select 3 as id, 123 as recno from dual
  union all
  select 4 as id, 104 as recno from dual
  union all
  select 5 as id, 105 as recno from dual) x
 group by x.id
 order by min(recno);

Запрос прислал мой коллега Юрий Зотов

Чалышев М.М www.orasource.ru
добавлено: 22 ноя 12 просмотры: 3037, комментарии: 12



Пакет для работы с сетевыми функциями

Хотел бы представить пакет для работы с сетевыми функциями
ВНИМАНИЕ!!!! для корректной работы скрипта необходимо сначала создать следующий pl sql тип!!!!
CREATE OR REPLACE TYPE ds_ip_type as table of varchar2(50);


Пакет предоставляет широкий спектр возможностей для работы с сетевыми параметрами - сервисными функциями для работы с сетевыми протоколами , преобразования , маски , сети , работа с системами счисления , выборки
перечень возможностей сервисных функций пакета:

-- преобразует строку ip адрес в число
-- преобразует число в строковый ip адрес
-- преобразует маску в ip адрес
-- конвертирует возвращает декаду из Ip адреса IP адрес - строка
-- конвертирует датув ремя из формата unixtime (timestamp) в стандартный формат oracle
-- конвертирует датувремя из формата oracle date в формат unixtime (timestamp))
-- логический AND двух чисел p_first , p_next
-- логический OR двух чисел p_first , p_next
-- логический XOR двух чисел p_first , p_next
-- перевод целого числа из десятичного в шестнадцатеричный формат
-- переводит значение из шестнадцатеричного формата в десятичный
-- перевод двоичного значения в десятичное число
-- верхний диапазон ip адреса по маске
-- нижний диапазон ip адреса по маске
-- Определяет принадлежность ip адреса к заданной подсети
-- Генерирует диапазон ip адресов по заданной подсети
-- Находит сумму , среднее , минимальное , максимальное значение

ВНИМАНИЕ!!!! для корректной работы скрипта необходимо сначала создать тип!!!!
CREATE OR REPLACE TYPE ds_ip_type as table of varchar2(50);


ссылка для скачивания ПАКЕТА
http://orasource.ru/downloads/oranetwork.zip


Чалышев М.М www.orasource.ru
добавлено: 29 окт 12 просмотры: 2364, комментарии: 0



Работа с внешним приложением по SOAP протоколу в ORACLE .Работа с XML в Oracle.

Чалышев М.М www.orasource.ru
изучаем SQL группа в контакте - присоединяйтесь
Учебный тренинг. SQL от новичка до профессионала.
Бесплатные авторские видеокурсы SQL, PLSQL, JAVA

создании данного материала неоценимую помощь мне оказал мой коллега
Доброквашин Михаил.

В этом материале будут разобраны следующие моменты:
Работа с XML в Oracle (формирование XML, хранение XML в базе, извлечение и парсинг XML документа)
Придача XML документа по HTTP протоколу, ожидание ответа, авторизация на HTTP сервере, получение ответа.
Работа с данными тип LOB.

Для примеров может быть использован сервер Oracle не ниже 9 ой версии, с поддержкой XML TYPE.

Введение

Многочисленные приложения сейчас используют в качестве обмена информацией формат XML. Протокол SOAP так же используется многими web сервисами и приложениями , такими как ozon , google, yandex. В протоколе soap XML документ передается по http get другому приложению или web службе, которая в свою очередь возвращает ответ так же в XML формате.
читать дальше...
добавлено: 22 окт 12 просмотры: 5543, комментарии: 0