153 читали · 1 год назад
Псевдостолбец ROWNUM в Oracle: тонкости и подводные камни
Если вы работали с Oracle SQL, то наверняка встречали псевдостолбец ROWNUM. Многие разработчики на первых порах думают, что это аналог порядкового номера строки в результате запроса, но не всё так просто. Давайте разберёмся, как он работает и когда его лучше заменить на ROW_NUMBER(). ROWNUM — это число, которое Oracle назначает каждой строке по мере их выборки в запросе. Это не окончательный порядковый номер строки в итоговом результате, а скорее номер, который присваивается в процессе выполнения запроса...
163 читали · 4 года назад
SELECT MODEL - работа со строками таблицы, как с элементами массива
Аналитические функции и иерархические запросы работают с несколькими строками таблицы Oracle. Конструкция SELECT MODEL дает еще большие возможности. Предположим, в таблицу базы данных записываются документы, которые поступают пачками, при этом каждый документ в пределах пачки нумерован, но номер пачки по каким-то причинам не регистрируется. Т.е. мы имеем лишь монотонный непрерывный идентификатор строки и номер документа в пачке. Имитируем такие данные. Три вложенных иерархических запроса генерируют...
1287 читали · 7 лет назад
Печеньки от Oracle. Экспорт/импорт с помощью XML
Перенос данных из систему 1 в систему 2 несколько необычным образом. Предположим, в системе 1 есть некоторые данные, которые нам надо перенести в систему 2. Предположим, они доступны с использованием следующего запроса: select arg, func from system1.square_test ; 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 Чтоб перенести их традиционным способом, нужно записать DDL создания принимающей таблицы (если ее нет) и скрипт DML для всех строк данных. Что-то типа: create table system2.square_test (arg number, func number); insert into system2...