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

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

select * into #tmp from table1

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

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

Подробнее

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

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

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

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

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

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

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

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

{ fn NOW() }

Вот и всё.

Подробнее

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

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

Подробнее

Стандартные утилиты в MySQL

Стандартные утилиты в MySQL находятся в подкаталоге bin корневого каталога MySQL.

Список наиболее часто используемых утилит:

myisampack - Сжимает таблицы типа MyISAM, уменьшает их в размере и делает доступными только для чтения;

mysql - консольный клиент для доступа к MySQL серверу, позволяет выполнять SQL запросы и осуществлять администрирование сервера;

Подробнее

Поиск и регулярные выражения в MySQL

СУБД MySQL имеет различные инструменты для осуществления поиска, среди которых оператор LIKE, осуществляющий простейшие операции поиска, оператор RLIKE, предоставляющий возможности поиска по регулярным выражениям.


Оператор LIKE

Оператор LIKE предназначен для сравнения строк с использованием простейших регулярных выражений. Оператор часто используется в конструкции WHERE и возвращает 1 или 0.


Сравнение строк не зависит от регистра, если не используется ключевое слово BINARY, означающее что строку следует рассматривать как двоичную последовательность.

Подробнее

Пример создания последовательности SEQUENCE в MSSQL

Примр создания последовательности SEQUENCE в MSSQL:

CREATE SEQUENCE [dbo].[CardNum] 
 AS [bigint]
 START WITH 1
 INCREMENT BY 1
 MINVALUE -9223372036854775808
 MAXVALUE 9223372036854775807
 CACHE 
GO

Этот сккрипт создаст последовательность SEQUENCE CardNum с типом BIGINT и стартовым значением 1 в текущей базе данных.


Чтобы получить новое значение value из последовательности SEQUENCE:

set @card_num =  NEXT VALUE FOR [dbo].[CardNum];


Чтобы получить текущие свойства properties для последовательности SEQUENCE:

SELECT * FROM sys.sequences WHERE name = 'CardNum' ;
Подробнее

Перезапуск (Restart) MSSQL Server на Linux (Ubuntu).

Перезапуск (Restart) MSSQL Server на Linux (Ubuntu).

Microsoft рекомендует перезапускать сервер так:

-- Получить состояние сервиса
sudo systemctl status mssql-server

-- Остановить сервис
sudo systemctl stop mssql-server

-- Запустить сервис
sudo systemctl start mssql-server

-- Перезапустить сервис
sudo systemctl restart mssql-server


Для Ubuntu я лично предпочитаю такой способ:

service mssql-server status
service mssql-server stop
service mssql-server start
service mssql-server restart
Подробнее