Объединение выборок UNION, INTERSECT, MINUS в Oracle (PL/SQL)

Осваиваем Oracle и PL/SQL

В Oracle присутствует возможность объединять выборки. Для объединения используются операторы: UNION (с вариацией UNION ALL), INTERSECT и MINUS. Рассмотрим работу всех этих операторов.

1. UNION и UNION ALL

UNION — объединяет наборы данных, но при этом исключает дублирующие записи, тоесть если у вас в первом и во втором наборе есть одинаковая запись то в результирующем наборе будет только одна такая запись.
UNION ALL — объединяет наборы данных и оставляет дублирующие записи, тоесть если в первом и во втором наборе есть одинаковые записи то в результирующем наборе будут все эти записи.

Для экспериментов, создадим две таблицы и заполним их тестовыми данными.

Читаль далее...

Oracle PLSQL UNION MINUS INTERSECT объединение SQL

Функции AES_ENCRYPT и AES_DECRYPT в MySQL

Базы данных MySQL

Функции AES_ENCRYPT() и AES_DECRYPT() производят симметричную шифровку и дешифровку данных с использованием алгоритма AES (Advanced Encryption Standard), при этом используется кодирование с 128-битным ключом. Есть возможность расширить до 256-бит, но как стандарт в MySQL выбран 128-битный, как достаточный по надёжности и более быстрый.

Синтаксис функций:

AES_ENCRYPT('Шифруемая строка','Ключ');
AES_DECRYPT('Дешифруемая строка','Ключ');
--Входные параметры AES_ENCRYPT() могут быть любой длины.
--Если любой из входных параметров равен NULL - то и результат выполнения тоже будет NULL.
--Ключ в AES_DECRYPT() должен совпадать с ключом в AES_ENCRYPT().


Приведем рабочий пример работы с функциями:

Читаль далее...

MySQL AES_ENCRYPT AES_DECRYPT функции

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 (PL/SQL)

Осваиваем Oracle и PL/SQL

Основные способы обработки строковых значений в Oracle.
В этой публикации я приведу основные функции работы со строками которые встречались мне в работе, и будут полезны всем кто работает с Oracle.

CONCAT — Объединяет две строки

SQL> select concat('Пётр ','первый') from dual;
 
CONCAT('ПЁТР','ПЕРВЫЙ')
-----------------------
Пётр первый

Читаль далее...

Oracle PLSQL строки программирование SQL функции

Распознавание автомобильного номера с изображения на C# (.NET)

Язык программирования C#

Распознавание номера .NETДовелось мне не так давно помогать с запуском одного проекта под .NET на WCF — под x64 систему, проект нормально работал на x86 но отказывался работать на x64. В целом как я и ожидал проблема решалась довольно просто, помимо основной проблемы всплыло ещё несколько, в процессе решения которых пришлось познакомиться с очень интересной библиотекой Emgu CV, которая позволяет делать множество замечательных вещей, среди которых распознавание номера на изображении.

Благодаря этой библиотеке можно очень легко и просто внедрить распознавание номера в свою программу. Вот я и решил поделиться новым знанием, вдруг кому-то захочется что-то эдакое реализовать. Например мне сразу пришла в голову идея автоматически открывающегося шлагбаума, без всяких брелков. :) Качество распознавания, скажем — так себе, хотя возможно я просто не достаточно разобрался в возможностях, и всё делал как по умолчанию в примерах, но тем не менее поиграться стоит — вещь интересная.

В принципе, в комплекте с библиотекой есть целый набор примеров, в том числе и пример с распознаванием автомобильного номера. Но в этой публикации я приведу свой пример.

Итак, приступим…

Читаль далее...

NET C# распознавание образов

Как отлавливать ошибки в Oracle (PLSQL) EXCEPTION,SQLERRM,SQLCODE

Осваиваем Oracle и PL/SQL

Маленькое руководство по отлавливанию ошибок в Oracle PLSQL.
Описание как использовать в Oracle (PLSQL) функции SQLERRM и SQLCODE для отлова ошибок EXCEPTION, с описанием синтаксиса и примером.

Функция SQLERRM возвращает сообщение об ошибке связанное с последним возникшим исключением (ошибкой).
Функция SQLERRM — не имеет параметров.

Функция SQLCODE возвращает код ошибки связанный с последним возникшим исключением (ошибкой)
Функция SQLERRM — не имеет параметров.

Обычно обработка исключений EXCEPTION выглядит следующим образом:

EXCEPTION
   WHEN наименование_ошибки_1 THEN
      [statements]

   WHEN наименование_ошибки_2 THEN
      [statements]

   WHEN наименование_ошибки_N THEN
      [statements]

   WHEN OTHERS THEN
      [statements]

END [наименование_процедуры];


Вы можете использовать функции SQLERRM и SQLCODE для вызова сообщения об ошибке например таким образом:
EXCEPTION
   WHEN OTHERS THEN
      raise_application_error(-20001,'Произошла ошибка - '||SQLCODE||' -ERROR- '||SQLERRM);
END;
-- В данном случае появится всплывающее сообщение.

Читаль далее...

Oracle PLSQL SQL EXCEPTION SQLERRM SQLCODE ошибки программирование

Работаем с базой данных MySql из .NET Core

.NET Core

В данной публикации мы рассмотрим как подключиться к базе данных MySql из приложения на .Net Core.

1. Если у вас ещё не установлен .Net Core то устанавливаем: .NET Core.

2. Далее создаем новый проект .NET Core

mkdir MySqlCoreSample
cd MySqlCoreSample
dotnet new

После выполнения этих команд в папке MySqlCoreSample появится 2 файла: «Program.cs», «project.json».
Это простейший шаблон приложения на .NET Core.
В эти файлы мы и будем вносить изменения, для чего будем использовать Visual Studio Code.

3. Используя расширение NuGet добавляем в наш проект "MySql.Data.7.0.6-ir31"
И добавляем зависимость в файле «project.json».

Читаль далее...

MySql Net Core VS Code dotnet C#

Oracle - Функции RANK() и DENSE_RANK() (Или учимся выбирать необходимые значения внутри множественной выборки)

Осваиваем Oracle и PL/SQL

Начнем с функции RANK(). С объяснения для чего она и в каких случаях она нам может пригодиться.

Функция RANK() — это очень полезная функция, она позволяет нам пронумеровать набор по некоторому группирующему значению внутри всего выбранного набора данных. Проще всего показать это на примере. Для этого создадим небольшую таблицу:

ID	PERSON	DT			SM

1	Роман	01.10.2016 11:51:31	545.3
2	Роман	01.10.2016 11:51:31	445.2
3	Роман	01.10.2016 11:51:31	145.3
4	Кирил	01.05.2016 16:51:31	99.5
5	Алена	01.07.2016 12:51:31	445.3
6	Роман	01.12.2016 16:51:31	876.1
7	Кирил	01.06.2016 16:51:31	237.22
8	Алена	01.12.2016 16:51:31	145.3
9	Алена	01.02.2016 14:51:31	534.7
10	Роман	01.03.2016 16:51:31	165.3
11	Кирил	01.04.2016 16:51:31	345.2


Пусть в этой таблице будет содержать некоторые выставленные счета разным пользователям PERSON на разные суммы SM в разное время DT.

Читаль далее...

Oracle RANK() DENSE_RANK() группировка выбор первых PL/SQL программирование SQL

ASP.NET MVC проект на .NET Core в VS Code. Часть 2 (Добавляем Представление)

.NET Core

В предыдущей публикации мы создали простейший ASP.NET MVC проект на .NET Core и добавили в него контроллер. Весь проект состоял из 4 файлов и содержал только самое необходимое. Теперь мы добавим в этот проект представления.
(Скачать исходник предыдущего проекта можно здесь: Sample001s.zip)

Приступим. Для начала добавим в наш проект каталог «View» (именно так принято именовать папку содержащую представления) в котором будут лежать все наши представления. Затем в каталоге «View» создадим подкаталог «SayHello» — в нем будут лежать представления для контроллера SayHello.

Читаль далее...

NET Core View Представление MVC ASP.NET C#

Работа с Postgresql в C#

Не так давно занялся разработкой приложения на C# работающего на базе PostreSQL, появилась информаци (читать далее...)

1098  
Работа с MySQL в C#

Надеюсь данная публикация не даст читателям повторить мои ошибки и поможет сделать изначально правил (читать далее...)

648  
Работа со строками в Oracle (PL/SQL)

Основные способы обработки строковых значений в Oracle. В этой публикации я приведу основные функции (читать далее...)

628  
Поиск и регулярные выражения в MySQL

СУБД MySQL имеет различные инструменты для осуществления поиска, среди которых оператор LIKE, осущес (читать далее...)

471  
Передача параметров между формами в C#

Часто возникает необходимость передать определённые параметры между формами в одном приложении, напр (читать далее...)

455  
OpenXML - Пример создания Excel файла на C#

В данной публикации приведен пример генерации Excel файла при помощи библиотеки OpenXML. Отличие это (читать далее...)

438  
Установка русской кодировки на уже созданную базу данных (смена COLLATION)

Полезный пример изменения кодировки (COLLATION) на уже созданной базе данных. В данном примере устан (читать далее...)

412  
Работа с XML в Oracle PL/SQL (Часть 1)

В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее...)

394  
Курсоры в MSSQL - перебор выборки в цикле.

Команды манипулирования данными SELECT, UPDATE, DELETE работают сразу с группами строк. Эти группы, (читать далее...)

347  
Функция Oracle TO_DATE (PL/SQL)

Функция TO_DATE — преобразует строку в переменную времени DATE. Синтаксис: TO_DATE(исходная_строка, (читать далее...)

321