Oracle - Фичи и полезности
Полезные мелочи и запросы, которые могут пригодиться с их описанием.
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';
— Пока сессия не закрыта, будет действовать установленный таким образом формат.
3. Создаем партиционированную таблицу.
(каждый месяц в новой партиции, при большом объёме данных сильно ускоряет выборки)
(вообще данная тема очень обширна, с большими возможностями но здесь лишь краткий пример)
create table
table_data_part (
dt DATE
)
PARTITION BY RANGE (dt)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION initial VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY'))
);
Для данной таблицы данные за каждый месяц, начиная с 1 юиля 2017 года, будут храниться в отдельной партиции. При этом создаваться они будут автоматически.
4. Оставляем только символы в строке.
select regexp_replace('Входная строка 12','[^[[:alpha:]]]*') from dual;
Результат:
"Входнаястрока"
5. Оставляем только цифры в строке.
select regexp_replace('Входная строка 12','[^[[:digit:]]]*') from dual;
Результат:
"12"