Создание пользователя (схемы) в Oracle

Пример простого создания пользователя (схемы) в БД Oracle:

--Создаем нового пользователя test с паролем 240580
create user test IDENTIFIED BY 240580
default tablespace users
temporary tablespace temp

--Добавляем квоту на дисковое пространство.
alter user test quota 100M on users;

--Разрещаем создавать сессии пользователю (подключаться)
grant create session to test

--Разрешаем создавать таблицы пользователю
grant create table to test

--Разрешаем создавать процедуры
grant create procedure to test

--Разрешаем создавать триггеры
grant create trigger to test

--Разрешаем создавать представления
grant create view to test

--Разрешаем создвавть счетчики
grant create sequence to test

--Разрешаем изменять таблицы, процедуры, триггеры и профиль
grant alter any table to test;
grant alter any procedure to test;
grant alter any trigger to test;
grant alter profile to test;

--Разрешаем удаления
grant delete any table to test;
grant drop any table to test;
grant drop any procedure to test;
grant drop any trigger to test;
grant drop any view to test;
grant drop profile to test;

Вот и всё, полноценный пользователь создан, можно пользоваться!

Подробнее

Узнаем какая сессия блокирует пакет Oracle

Чтобы узнать какая сессия блокирует пакет:

SELECT s.*,
       l.lock_type,
       l.mode_held,
       l.mode_requested,
       l.lock_id1,
       'alter system kill session '''|| s.sid|| ','|| s.serial#|| ''' immediate;' kill_sid
FROM   dba_lock_internal l,
       v$session s
WHERE  s.sid = l.session_id
AND    UPPER(l.lock_id1) LIKE '%ПАКЕТ%'
AND    l.lock_type = 'Body Definition Lock'
Подробнее

Oracle - добавляем размер табличного пространства

Ещё это метод излечения ошибки типа: 

ORA-01654: unable to extend.

Узнаем размеры табличного пространства и свободное место:

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;
Подробнее

Исправляем ошибку ORA-00604: error occured at recursive SQL level 1ORA-12705 в Oracle SQL Developer

Ошибка при установке соединения с сервером из Oracle SQL Developer:

ORA-00604: error occured at recursive SQL level 1ORA-12705: Cannot access NLS data files or invalid enviroment specified


Для исправления делаем следующие действия:

    Открываем <папку_со_средой>\ide\bin\ide.conf
    Дописываем туда две строчки:

    AddVMOption -Duser.language=en
    AddVMOption -Duser.region=us

И всё!

Подробнее

Проверка адреса электронной почты на корректность средствами PL/SQL

Простейшая проверка адреса электронной почты выглядит так:

select * from EMailsTable et where REGEXP_LIKE (et.Email, '[A-z0-9._%-]+@[A-z0-9._%-]+\.[A-z]{2,4}')


Скрипт выбирает из таблицы с E-Mail адресами только те адреса которых попадают под заданное регулярное выражение.

Подробнее

Пример отправки почты в 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() }

Вот и всё.

Подробнее

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

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

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

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

Подробнее