Найти в Дзене
Перенос Excel в таблицу в pl/sql developer
Как импортировать данные из Excel в PL/SQL Developer с помощью Text Importer? Проблема: Часто возникает необходимость быстро перенести данные из Excel в Oracle-таблицу, но ручной ввод или написание скриптов для каждой загрузки отнимает время и чревато ошибками. Чтобы быстро загрузить данные из Excel в Oracle через PL/SQL Developer, удобно воспользоваться встроенным инструментом Text Importer. Сохраните нужный лист в формате **CSV** (Файл → Сохранить как → CSV UTF-8 или CSV с разделителями-запятыми)...
4 дня назад
Массивы в Oracle
В Oracle массив — это структура, которая позволяет хранить набор значений в одной переменной. Представьте, что у вас есть список номеров школ — вместо того чтобы заводить 10 переменных `school1`, `school2`, ..., мы кладём все значения в один контейнер и работаем с ними как с единым объектом. Массивы в Oracle особенно полезны в PL/SQL, при передаче данных между процедурами, а также при интеграции через OCI (Oracle Call Interface). В Oracle уже есть готовые коллекции в пакете SYS, которые используются...
4 месяца назад
Bitmap индекс в Oracle — когда ускоряет, а когда мешает
Битовые индексы — мощный инструмент в Oracle, но работают не везде. В этом посте — просто и по делу: когда их использовать, а когда лучше обойти стороной. В отличие от классического B-tree индекса, который хранит ссылки на строки с конкретными значениями, битовый индекс использует битовые карты: для каждого уникального значения создаётся "битовая маска", где каждая строка таблицы — это позиция (бит). Один бит = одна строка. Такой подход суперэффективен, когда: Посмотрим на таблицу `demo_customers`...
5 месяцев назад
Технические столбцы в таблице
Если в вашей БД нет технических столбцов — вы играете на авось. Кто создал? Кто удалил? Почему не работает? Где следы? Без этих ответов вы не владеете своей системой. Минимальный набор "технической гигиены": Именовать столбцы вы можете по-другому, главное - название предавало назначение столбца -- Таблица customers CREATE TABLE demo_customers ( customer_id NUMBER PRIMARY KEY, name VARCHAR2(100), region VARCHAR2(50), created_at DATE DEFAULT SYSDATE, created_by NUMBER, modified_at DATE, modified_by...
6 месяцев назад
5 способов посмотреть план выполнения запроса в Oracle SQL
План выполнения показывает, **как Oracle обрабатывает SQL-запрос**: какие индексы использует, в каком порядке соединяет таблицы, как фильтрует данные. Понимание плана — ключ к оптимизации запросов и устранению узких мест. Предсказывает план выполнения запроса. Не исполняет сам запрос. Как использовать: EXPLAIN PLAN FOR SELECT * FROM products WHERE region = 'Россия'; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); Когда применять: Для предварительного анализа до запуска запроса. Отличие: Это план по предположению Optimizer, без выполнения...
6 месяцев назад
Ведем учет пользователей: от таблицы до аудита
Хранить пользователей в БД — это не просто привычка, а часть архитектуры. Централизованный учет помогает: Покажу, как грамотно реализовать это на Oracle SQL с проверкой, обработкой ошибок и аудитом. CREATE TABLE users ( USERID NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, LOGIN VARCHAR2(100) NOT NULL UNIQUE, CREATED_AT DATE DEFAULT SYSDATE, CONSTRAINT login_min_length CHECK (LENGTH(login) >= 3) ); CREATE OR REPLACE FUNCTION f_get_user_id(p_login IN VARCHAR2) RETURN NUMBER IS v_user_id ...
6 месяцев назад
Оптимизация в Oracle. Коротко и по делу
Когда ты только учишься писать SQL — главное, чтобы «работало». А когда работаешь с таблицей в 15+ миллионов строк — важна оптимизация. Я когда-то обрабатывала по 300 строк в час. После оптимизации — 150 000+ за это же время. 1. Используй индексы (и проверь, что Oracle их применяет) 2. Не делай SELECT * — выбирай только нужные поля 3. Используй `BULK COLLECT` и `FORALL` в PL/SQL 4. Следи за `execution plan` (можно в SQL Developer) 5...
6 месяцев назад
Отличие PIPELINED функций и TYPE в Oracle PL/SQL
'TYPE' в Oracle — это способ определить собственные типы данных. Чаще всего используется: Пример: -- Объявляем тип таблицы CREATE OR REPLACE TYPE t_num_tab AS TABLE OF NUMBER; PIPELINED-функции позволяют возвращать набор данных построчно, как будто это обычная таблица, и использовать их напрямую в SQL-запросах. Выглядят как обычные функции, но с ключевым словом PIPELINED. Это очень мощный инструмент, если: 1) Создаём тип строки и таблицы: CREATE OR REPLACE TYPE emp_row_type AS OBJECT ( emp_name...
6 месяцев назад
Hello, world! в Oracle PL/SQL 👋
Если вы начали изучать Oracle PL/SQL, то, по традиции, первый шаг — это вывести простое сообщение "Hello, world!". Даже в языках для работы с базами данных хочется сделать этот символичный старт. 😄 PL/SQL (Procedural Language/SQL) — это процедурное расширение языка SQL, разработанное Oracle. Он позволяет писать: Пример программы на PL/SQL, которая выведет «Hello, world!» в DBMS Output: BEGIN DBMS_OUTPUT.PUT_LINE('Hello,...
7 месяцев назад
Hello, world! в Oracle SQL 👋
Когда осваиваешь новый язык программирования, первое, что делают — выводят фразу "Hello, world!". А как это сделать в Oracle SQL? Всё просто: SELECT 'Hello, world!' AS message FROM dual; Что происходит в этом запросе? Результат запроса: В Oracle синтаксис требует, чтобы в `SELECT` всегда был указан источник данных. DUAL — это виртуальная таблица с одной строкой, созданная специально для таких случаев...
7 месяцев назад
DUAL — магическая таблица Oracle
Когда только начинаешь работать с Oracle Database, встречаешь странную таблицу — DUAL. Что это за чудо и зачем она нужна? DUAL — это специальная таблица, созданная для выполнения запросов, которые не требуют данных из реальной таблицы. В Oracle синтаксис SELECT требует указания источника данных. Даже если вам нужно просто выполнить выражение, вызвать функцию или получить системное значение — нужен FROM с таблицей. Чтобы не создавать отдельные "временные" таблицы под каждый запрос, Oracle ввела универсальную таблицу DUAL...
7 месяцев назад
Что такое Oracle APEX?
Oracle APEX (Application Express) — это платформа для быстрой и удобной разработки веб-приложений на базе Oracle Database. Её главная идея — позволить разработчикам сосредоточиться на бизнес-логике и пользовательском опыте, а не тратить месяцы на создание базовой архитектуры приложений. Большая часть интерфейсов создаётся через визуальный конструктор, где элементы страницы можно настраивать буквально за несколько кликов. APEX позволяет строить сложные приложения, используя минимальное количество HTML, CSS и JavaScript...
7 месяцев назад