Скрипт связи между системными процессами и сессиями в Oracle
Скрипт выводит связи между системными процессами и сессиями в Oracle:
select * from v$process p, v$session s where p.addr=s.paddr
Скрипт выводит связи между системными процессами и сессиями в Oracle:
select * from v$process p, v$session s where p.addr=s.paddr
Ещё это метод излечения ошибки типа:
Узнаем размеры табличного пространства и свободное место:
select file_name,tablespace_name,user_bytes/1024/1024,bytes/1024/1024,
maxbytes/1024/1024,autoextensible from dba_data_files;
Добавляем еще места:
ALTER TABLESPACE USERS_INDX -- Это TABLESPACE_NAME
ADD DATAFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS_IDX01.DBF'
SIZE 100M
AUTOEXTEND ON NEXT 100M
MAXSIZE 4G;
Ошибка при установке соединения с сервером из Oracle SQL Developer:
Для исправления делаем следующие действия:
Открываем <папку_со_средой>\ide\bin\ide.conf
Дописываем туда две строчки:
AddVMOption -Duser.language=en
AddVMOption -Duser.region=us
И всё!
Простейшая проверка адреса электронной почты выглядит так:
select * from EMailsTable et where REGEXP_LIKE (et.Email, '[A-z0-9._%-]+@[A-z0-9._%-]+\.[A-z]{2,4}')
Скрипт выбирает из таблицы с E-Mail адресами только те адреса которых попадают под заданное регулярное выражение.
Для того, кто перешёл с MSSQL на Oracle, как например для меня, очень не привычно отсутствие такой удобной конструкции как:
select * into #tmp from table1
Где #tmp - временная таблица, с которой мы в рамках сессии можем далее обращаться как с обычной.
Однако в Oracle такая конструкция не работает. Мои попытки сходу найти какой либо аналог, успехом не увенчались. Однако свершилось чудо, и спустя некоторое время более опытный в этом вопросе коллега подсказал таки выход, который по сути реализует аналогичную вещь как и в MSSQL.
Один турист разглядывал выставленных для продажи животных в зоомагазине и увидел, как человек купил обезьяну за 5000 долларов. Он подошел к продавцу и поинтересовался, почему эта обезьяна такая дорогая.
Продавец ответил:
- Она очень быстро программирует на С, не делая ошибок, и пишет великолепный код.
Тогда турист стал внимательно разглядывать других обезьян в этой клетке и заметил, что одна из них стоит 10000.
- За что же назначена цена в два раза больше? - спросил он.
Продавец сказал:
- Эта обезьяна программирует на С++, Java и других объектно - ориентированных языках.
Оглядев магазин, турист увидет еще одну обезьяну в отдельной клетке с табличкой $50000:
- О! А вон та стоит 50000! Это неслыханная цена, что же она умеет?
Продавец развел руками и сказал:
- Сам я точно не знаю, но другие обезьяны называют ее Project Manager.
Архив - может кому пригодится
Большинство моделей современных телефонов поддерживают функцию виброзвонка, а значит его можно использовать (например в играх при взрывах для придания ещё большей реалистичности, или при написании коммуникационных программ, для того чтобы устройство находясь в кармане дало знать о пришедшем сообщении).
Здесь я приведу три метода реализации виброзвонка на устройствах Windows Mobile в среде .NET CF. Хотя, по правде говоря, все они реализованы через использование API поэтому могут быть использованы не только в .NET.
Простой вариант отправки почты, стандартными средствами.
Для него нам необходимо подключить библиотеки:
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);//непосредственно само отправление...
Вот и всё. Письмо отправлено!
Возможно есть много методов преобразования цветного изображения в чёрно белое, и возможно даже более совершенных, но на данный момент представленный ниже метод, является самым быстрым, среди известных мне.
Преобразование использует только стандартные библиотеки.
Суть метода заключается не в работе с самой картинкой а в работе с блоком данных, если очень просто - то замораживаем область данных с картинкой в памяти - изменяем её как нам надо, и возвращаем всё на круги своя.
Собственно привожу здесь пример того как можно сделать так, чтобы скрипт в MSSQL использующий дату отрабатывал правильно при любых региональных настройках и формате даты, я лично - это реализовал вот таким образом:
В скрипте пишем дату вот так:
convert(datetime,'"+data+"',120)
Где data это строка вот такого вида:
ГГГГ.ММ.ДД чч:мм:сс
- Именно на такой формат даты указывает число 120. Поэтому сервер уже не перепутает месяц с днём и т.п.
Для быстрого и безошибочного задания текущей даты можно использовать функцию:
{ fn NOW() }
Вот и всё.