Пример создания временных таблиц на PL/SQL как в MSSQL

Для того, кто перешёл с MSSQL на Oracle, как например для меня, очень не привычно отсутствие такой удобной конструкции как:

select * into #tmp from table1

Где #tmp - временная таблица, с которой мы в рамках сессии можем далее обращаться как с обычной. 

Однако в Oracle такая конструкция не работает. Мои попытки сходу найти какой либо аналог, успехом не увенчались. Однако свершилось чудо, и спустя некоторое время более опытный в этом вопросе коллега подсказал таки выход, который по сути реализует аналогичную вещь как и в MSSQL.

Подробнее

Анекдот про Project Manager-а.

Один турист разглядывал выставленных для продажи животных в зоомагазине и увидел, как человек купил обезьяну за 5000 долларов. Он подошел к продавцу и поинтересовался, почему эта обезьяна такая дорогая. 
Продавец ответил: 
- Она очень быстро программирует на С, не делая ошибок, и пишет великолепный код. 
Тогда турист стал внимательно разглядывать других обезьян в этой клетке и заметил, что одна из них стоит 10000. 
- За что же назначена цена в два раза больше? - спросил он. 
Продавец сказал: 
- Эта обезьяна программирует на С++, Java и других объектно - ориентированных языках. 
Оглядев магазин, турист увидет еще одну обезьяну в отдельной клетке с табличкой $50000: 
- О! А вон та стоит 50000! Это неслыханная цена, что же она умеет? 
Продавец развел руками и сказал: 
- Сам я точно не знаю, но другие обезьяны называют ее Project Manager.

Подробнее

Включение виброзвонка в Windows Mobile на C#

Архив - может кому пригодится
Большинство моделей современных телефонов поддерживают функцию виброзвонка, а значит его можно использовать (например в играх при взрывах для придания ещё большей реалистичности, или при написании коммуникационных программ, для того чтобы устройство находясь в кармане дало знать о пришедшем сообщении).
 

Здесь я приведу три метода реализации виброзвонка на устройствах Windows Mobile в среде .NET CF. Хотя, по правде говоря, все они реализованы через использование API поэтому могут быть использованы не только в .NET.

Подробнее

Пример отправки почты в C#

Простой вариант отправки почты, стандартными средствами.

Для него нам необходимо подключить библиотеки:

using System.Net;
using System.Net.Mail;
using System.Net.Mime;


Сам код отправки письма с вложением:

//Указываем SMTP сервер и авторизуемся.
SmtpClient Smtp_Client = new SmtpClient("почтовый сервер", порт);
Smtp_Client.Credentials = new NetworkCredential("пользователь", "пароль");
//Выключаем или включаем SSL - (например для гугла должен быть включен).
Smtp_Client.EnableSsl = false;

//Приступаем к формированию самого письма
MailMessage Message = new MailMessage();
Message.From = new MailAddress("ot_kogo@mail.ру");
Message.To.Add(new MailAddress("komu@mail.ру"));
Message.Subject = "Тема сообщения";
Message.Body = "Само сообщение";

//Теперь прикрепим файл к сообщению...

string file = "полный путь до файла";
Attachment attach = new Attachment(file, MediaTypeNames.Application.Octet);

// Добавляем информацию для файла
ContentDisposition disposition = attach.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);

Message.Attachments.Add(attach);

Smtp_Client.Send(Message);//непосредственно само отправление...


Вот и всё. Письмо отправлено!

Подробнее

Пример преобразования цветного изображения в черно белое на C#

   Возможно есть много методов преобразования цветного изображения в чёрно белое, и возможно даже более совершенных, но на данный момент представленный ниже метод, является самым быстрым, среди известных мне.
   Преобразование использует только стандартные библиотеки.
   Суть метода заключается не в работе с самой картинкой а в работе с блоком данных, если очень просто - то замораживаем область данных с картинкой в памяти - изменяем её как нам надо, и возвращаем всё на круги своя.

Подробнее

Способ задать дату в MSSQL чтобы не зависеть от региональных настроек сервера.

Собственно привожу здесь пример того как можно сделать так, чтобы скрипт в MSSQL использующий дату отрабатывал правильно при любых региональных настройках и формате даты, я лично - это реализовал вот таким образом:

В скрипте пишем дату вот так:

convert(datetime,'"+data+"',120)

Где data это строка вот такого вида:

ГГГГ.ММ.ДД чч:мм:сс

- Именно на такой формат даты указывает число 120. Поэтому сервер уже не перепутает месяц с днём и т.п.

Для быстрого и безошибочного задания текущей даты можно использовать функцию:

{ fn NOW() }

Вот и всё.

Подробнее

PL/SQL SELECT и использование DISTINCT

Ни для кого не секрет что при использовании DISTINCT вместе с SELECT мы получаем набор уникальных записей, но оказывается в Oracle, есть ещё один оператор для этих целей UNIQUE - причем из проведенных опытов, похоже дает большую производительность.

Подробнее

Условная компиляция в C#

Появилась у меня однажды задача компиляции программы под разные устройства. Ряд устройств в моём случае обладают специфическими возможностями и для них задействуются специальные библиотеки, а для некоторых обычных устройств - эти библиотеки надо исключать. Можно конечно комментировать каждый раз - но включений довольно много и такой подход весьма проблематичен.

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

Для условной компиляции используются директивы: #define, #if#else, #endif.

Подробнее

Работаем с Excel из C# (архив)

Это самый простой и примитивный пример, может пригодится, но лучше использовать OpenXML.
В данной публикации приведён пример создания и вывода документа Excel из программы написанной на языке C#.
Приведён самый простенький пример для использования в целях обучения.

Подробнее

Пример расчета EAN13 на C#

Для начала о самой процедуре:
Вся суть генерации штрихового кода EAN-13 заключается в поиске контрольного разряда (последней 13-ой цифры). 
Алгоритм поиска этого значения таков:
1) Оставляем 12 цифр (последняя 13 - контрольная которую ищем). 
2) Суммируем разряды, стоящие на четных местах.
3) Результат пункта 2 умножаем на 3 .
4) Суммируем разряды, стоящие на нечетных местах.
5) Суммируем результаты пунктов 3 и 4.
6) В полученном числе крайнюю справа цифру (остаток от деления на 10) вычесть из 10, если остаток 0 то значение равно 0.

Полученный результат и есть значение контрольной цифры.

Теперь пример на класса реализующего этот алгоритм на C#:

Подробнее