О соединении данных столбца в одну строку с помощью SQL-запроса
Постановка задачи: в некоей таблице имеется столбец с данными. Необходимо эти данные склеить в строку с помощью одного SQL-запроса. (далее…)
Постановка задачи: в некоей таблице имеется столбец с данными. Необходимо эти данные склеить в строку с помощью одного SQL-запроса. (далее…)
На протяжении всего времени работы с Oracle меня интересовал вопрос – почему при таком изобилии возможностей групповых вычислений и аналитических расчетов отсутствует такая простая и полезная функция как склейка строк группы записей в одну (т.е. агрегирование строк). В Oracle 11g Release 2 появилась функция listagg, позволяющая агрегировать строки группы в одну и работающая в двух режимах:
Можно ли с помощью распределенных транзакций получать и передавать данные между СУБД Oracle и СУБД MySQL? Можно! Для этого в Oracle существует сервис гетерогенных (или разнородных) подключений – Heterogeneous Service. И не только с MySQL, но и с другими популярными базами данных.
Если что-то случилось с табличным пространством, предназначенным для временного хранения информации (TEMP), то его достаточно просто пересоздать. При этом нет никакой необходимости останавливать БД. Если во временном табличном пространстве возникли ошибки, то сама БД их будет попросту игнорировать, а вот операции DML будут приводить к сбоям.
Ошибка TNS-12514 может возникнуть во множестве случаев, как на windows, так и на unix/linux платформах. Но чаще всего неприятности с подключением происходят именно на windows платформе. (далее…)
СУБД Oracle XE или Oracle Express Edition в первую очередь предназначена для использования в качестве небольшой базы данных для разработчиков, локальной базы данных для администраторов, студентов или в качестве бесплатной платформы для демонстраций ПО. Ее основные преимущества – абсолютно бесплатное использование и простота в установке и обслуживании. С другой стороны версия начального уровня имеет достаточно серьезные ограничения – в работе БД может быть задействовано максимум 1Гб оперативной памяти, 1 процессор и 4 Гб дискового пространства для хранения данных. И эти ограничения нужно учитывать при распределении ресурсов. (далее…)
На днях возникла простенькая, но нестандартная задачка. Как грамотно отловить ошибку ORA-00942 “Таблица или представление не существует” в обычном PL/SQL блоке при попытке выполнения любой команды DML? Ну есть 2 класса пользователей, одни имеют разрешение на изменение таблицы, другие – нет. Но, т.к. весь блок состоит из нескольких операций, не хотелось создавать копии, отличающиеся одной командой, а разобраться на месте в самом блоке. Ошибка возникает на стадии лексического разбора, поэтому до обработки исключений дело не доходит. Решить такую задачу помогает динамический SQL. (далее…)
Для работы с мультимедиа объектами в БД Oracle существует такая замечательная вещь как Oracle Multimedia(изначально interMedia). Это средство позволяет хранить, обрабатывать и использовать мультимедиа-информацию различной природы. Это могут быть изображения, аудио и видеоданные. Для работы с каждым видом информации в Oracle Multimedia присутсвуют специальные объектные типы, позволяющие хранить информацию непосредственно в ячейках обычных таблиц, а также выполнять некоторый набор преобразований. (далее…)
Очень часто при выборке данных появляется задача определения значения первой записи в заданной подгруппе для его дальнейшего использования, например, в качестве параметра. Или еще один распространенный случай: выбрать первую запись из отсортированной выборки. Эту задачу можно решить с помощью псевдостолбца ROWNUM, но тогда потребуется использование вложенного подзапроса, т.к. сначала необходимо выбираемые данные отсортировать. В таких случаях наиболее эффективным решением будет использование групповых функций FIRST и LAST.
В БД Oracle существует 4 операции с множествами выбранных данных: union - объединение множеств записей, полученных в результате двух выборок union all - добавление всех записей второй выборки к результату…