Объединение выборок 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#

Разновидности терминалов Motorola Symbol MC3090

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

571  
Работа с Postgresql в C#

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

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

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

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

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

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

Довелось мне не так давно помогать с запуском одного проекта под .NET на WCF — под x64 систему, прое (читать далее...)

248  
Изменение размера изображения в C#

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

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

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

222  
XML в Oracle PL/SQL (Часть 2 - Выборки в виде XML)

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

213  
C# .NET - Получение информации по пользователю в домене

В данной публикации приведен пример получения информации по пользователю в домене AD с использование (читать далее...)

192  
Работа с FTP сервером из C#

Наверное многие сталкивались с необходимостью создать простой FTP клиент для своих нужд на C#. Вот и (читать далее...)

190