Oracle - Фичи и полезности (Часть №1)

Здесь буду выкладывать всякие полезные мелочи и запросы, которые могут пригодиться с их описанием.

1. Получаем список всех полей интересующей нас таблицы.
select  column_name 
  from user_tab_columns 
  where upper(table_name) = upper('название_таблицы')


2. Меняем формат даты по умолчанию в сессии.
alter session set NLS_DATE_FORMAT = 'dd.mm.yyyy hh24:mi:ss';
— Пока сессия не закрыта, будет действовать установленный таким образом формат.

Читать дальше →

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

Начнем с функции 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.

Читать дальше →

Ресурс посвящённый строкам подключения к БД "Connection Strings"

    Не так давно наткнулся на очень полезный ресурс для всех разработчиков приложений для работы с базами данных, называется ресурс Connection Strings.

    Ресурс представляет собой сборку всевозможных строк подключения к самым различным базам данных с использованием самых разнообразный провайдеров и технологий.

    Ну просто очень полезный ресурс.
    Вот ссылка: http://www.connectionstrings.com
    Ресурс правда на английском, но для тех кому надо это я полагаю не проблема.

Объединение результатов запросов

На днях столкнулся с такой необходимостью — объеденить результаты выборки по двум запросам.
Чуть было не стал делать это программно, но слегка напряг извилины и выяснилось ничего сложного в том чтобы сделать это одним запросом нет.

Итак имеем 2 таблицы:

[Таблица1]
имеет поля: ID, ID_TAB2, NAME, FAMILY

Читать дальше →

Как нельзя использовать SQL запрос в C#

Довольно недавно наткнулся на интересную особенность работы .NET провайдера для Postgres. Возникает эта особенность причём только при выполнении запросов через провайдер, при выполнении аналогичных запросов к базе из командной строки либо через менеджер такого не происходит.

Итак в чём суть:
Предположим нам необходимо найти значение поля NAME где поле ID равно 1. В случае если такое значение существует, то всё хорошо. Если нет — то .NET провайдер создаёт ошибку, вместо того чтобы вернуть Null. Разумеется при довольно большом количестве обращений и таких ошибок — сервер рано или поздно отключает клиента.

Читать дальше →