Генерируем MD5 HASH на Oracle PL/SQL
Осваиваем Oracle и PL/SQLПростой пример генерации MD5 на Oracle PL/SQL.
declare
cln_md5raw raw(2000);
out_raw raw(16);
begin
cln_md5raw := utl_raw.cast_to_raw('Наш текст для хеширования');
dbms_obfuscation_toolkit.md5(input=>cln_md5raw,checksum=>out_raw);
-- Выводится hex версия (32 символа)
dbms_output.put_line(lower(out_raw));
end;
100% работает на версии Oracle 11g. Комментировать...
Объединение выборок UNION, INTERSECT, MINUS в Oracle (PL/SQL)
Осваиваем Oracle и PL/SQLВ Oracle присутствует возможность объединять выборки. Для объединения используются операторы: UNION (с вариацией UNION ALL), INTERSECT и MINUS. Рассмотрим работу всех этих операторов.
1. UNION и UNION ALL
UNION — объединяет наборы данных, но при этом исключает дублирующие записи, тоесть если у вас в первом и во втором наборе есть одинаковая запись то в результирующем наборе будет только одна такая запись.
UNION ALL — объединяет наборы данных и оставляет дублирующие записи, тоесть если в первом и во втором наборе есть одинаковые записи то в результирующем наборе будут все эти записи.
Для экспериментов, создадим две таблицы и заполним их тестовыми данными.
Вставка записей в таблицу с одновременной проверкой и изменением в случае наличия записи в принимающей таблице MERGE в Oracle (MERGE INTO TABLE)
Осваиваем Oracle и PL/SQLMERGE — Функция предназначенная для объединения результата некоторой выборки в принимающую таблицу, при этом вовсе не обязательно чтобы состав полей совпадал.
Применяется когда необходимо дополнить некоторую таблицу новыми данными, одновременно обновив уже имеющиеся в таблице данные.
Реализация:
merge into таблица_приемник t1
using (select * from таблица_источник) t2
on (t1.id = е2.id and t1.parent_id = t2.parent_id)
when matched then
-- Обновляем если совпадение в таблице t1 найдено
update
set t1.info = t2.info
when not matched then
-- Добавляем если совпадение в таблице t1 не найдено
insert
(t1.id, t1.parent_id, t1.info)
values
(t2.id, t2.parent_id, t2.info);
Вот и всё.
Вопросы приветствуются. Комментировать...
XML в Oracle PL/SQL (Часть 2 - Выборки в виде XML)
Осваиваем Oracle и PL/SQLВ предыдущей публикации были рассмотрены некоторые приёмы манипуляции с XML в Oracle, теперь рассмотрим как делать выборку данных напрямую в XML. Это на мой взгляд самая интересная часть.
На практике выяснилось, что для Oracle в большинстве случаев не существенно, вернуть ли набор записей или сформированную готовую XML этого набора записей — по времени выполнения эти действия субъективно практически равноценны. Но вот если у вас есть потребность в формировании некоторой XML структуры в приложении на основе данных полученных из БД Oracle, практически наверняка это будет довольно ресурсоемкое мероприятие, гораздо легче переложить этот функционал на базу данных, хотя на первый взгляд и кажется что это не то, чем должен заниматься движок базы данных.
Oracle PLSQL XMLType XMLElement xmlattributes XMLAGG XMLSequence insertchildxml xmlconcat
Работа с XML в Oracle PL/SQL (Часть 1)
Осваиваем Oracle и PL/SQLВ этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую.
Здесь будут рассмотрены на примерах такие операторы и функции как: XMLType, XMLElement, xmlattributes, XMLAGG, XMLSequence, insertchildxml, xmlconcat.
Итак начнем с объявления переменной в которой будем хранить текст XML.
Делается это так:
declare
--Задаем переменную
my_var XMLType;
begin
--Присваиваем значение нашей переменной
my_var:= XMLType('<root><item>Просто пробуем XML в Oracle</item></root>');
--Выводим в вывод
dbms_output.put_line(my_var.GetClobVal());
end;
Для начала рассмотрим некоторые приёмы работы с XML, чуть позже перейдем к генерации XML из данных при выборке.
Читаль далее...
Oracle PLSQL XMLType XMLElement xmlattributes XMLAGG XMLSequence insertchildxml xmlconcat
Oracle - Выбираем все пользовательские таблицы с полями и комментариями.
Осваиваем Oracle и PL/SQLДля того, чтобы написать скрипт выбора всех пользовательских таблиц с полями и комментариями нам понадобятся системные таблицы:
user_tables
--Выбираем все пользовательские таблицы и их параметры
select * from user_tables
user_tab_comments
--Выбираем комментарии к пользовательским таблицам
select * from user_tab_comments
user_tab_columns
--Выбираем все поля и их параметры по пользовательским таблицам
select * from user_tab_columns
user_col_comments
--Выбираем комментарии к полям пользовательских таблиц
select * from user_col_comments
Читаль далее...
Oracle PLSQL tables user_col_comments user_tables user_tab_comments user_tab_columns
Функция Oracle TO_DATE (PL/SQL)
Осваиваем Oracle и PL/SQLФункция TO_DATE — преобразует строку в переменную времени DATE.
Синтаксис:
TO_DATE(исходная_строка, Формат, NLS_LANGUAGE);
--Последний параметр NLS_LANGUAGE (как я понимаю для задания кодировки) мне не разу не пригодился.
Читаль далее...
Функция Oracle TO_NUMBER (PL/SQL)
Осваиваем Oracle и PL/SQLФункция TO_NUMBER — преобразует строковое значение в числовое (NUMBER)
Синтаксис:
TO_NUMBER(исходная_строка, Формат, NLS_LANGUAGE);
--Последний параметр NLS_LANGUAGE (как я понимаю для задания кодировки) мне не разу не пригодился.
Читаль далее...
Функция Oracle TO_CHAR (PL/SQL)
Осваиваем Oracle и PL/SQLФункция TO_CHAR — преобразует дату или число в строку.
Синтаксис:
TO_CHAR(исходное_значение, Формат, NLS_LANGUAGE);
--В качестве исходного значения может быть передана как дата <strong>DATE</strong> так и число <strong>NUMBER</strong>.
--Последний параметр NLS_LANGUAGE (как я понимаю для задания кодировки) мне не разу не пригодился.
Читаль далее...
Работа со строками в Oracle (PL/SQL)
Осваиваем Oracle и PL/SQLОсновные способы обработки строковых значений в Oracle.
В этой публикации я приведу основные функции работы со строками которые встречались мне в работе, и будут полезны всем кто работает с Oracle.
CONCAT — Объединяет две строки
SQL> select concat('Пётр ','первый') from dual;
CONCAT('ПЁТР','ПЕРВЫЙ')
-----------------------
Пётр первый
Читаль далее...
Работа с Postgresql в C#
Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информаци (читать далее...)
1534Работа со строками в Oracle (PL/SQL)
Основные способы обработки строковых значений в Oracle. В этой публикации я приведу основные функции (читать далее...)
1065Передача параметров между формами в C#
Часто возникает необходимость передать определённые параметры между формами в одном приложении, напр (читать далее...)
1009Работа с MySQL в C#
Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)
718Поиск и регулярные выражения в MySQL
СУБД MySQL имеет различные инструменты для осуществления поиска, среди которых оператор LIKE, осущес (читать далее...)
681Сортировка списка (List) в C#
На днях понадобилось сортировать списки, удивительно, на сколько это оказалось просто. Допустим, име (читать далее...)
604Работа с XML в Oracle PL/SQL (Часть 1)
В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее...)
581Курсоры в MSSQL - перебор выборки в цикле.
Команды манипулирования данными SELECT, UPDATE, DELETE работают сразу с группами строк. Эти группы, (читать далее...)
556Функция Oracle TO_DATE (PL/SQL)
Функция TO_DATE — преобразует строку в переменную времени DATE. Синтаксис: TO_DATE(исходная_строка, (читать далее...)
500OpenXML - Пример создания Excel файла на C#
В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)
486