:: Не фоксом единым
Oracle with clause
boba

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Сделал некий прямой запрос с довольно длинным текстом, примерно 2 с половиной видимой страницы
в sql developer.
Потребовалось его использовать в двух ипостасях с union all
Сделали. Работает быстро.
Пытаюсь сделать из этой штуки view, не дает, говорит , нет там select
А он там есть
Пытаюсь записать результаты в таблицу, та же хрень.
Выглядит примерно так.
with bigquery as
(select чертовой сложности и длины)
select sum(smr), z from (
select sum(smr) as smr , z from bigquery where z= debet group by z
union all
select sum(-smr) as smr , z from bigquery where z= credit group by z)
group by z

Попытался сначала засунуть запрос в view,
но сразу упала в разы производительность.
Ratings: 0 negative/0 positive
Re: Oracle with clause
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
asktom.oracle.com
Только не стоит рассчитывать на то что запросы к этому VIEW будут работать по тому же плану что и просто запрос начинающийся с WITH.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle with clause
boba

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Игорь, спасибо
Именно так я и пробовал и view создавать,
и insert в таблицу приладить.
Всякий раз говорит, нет select
Может, дело в длине конструкции,
хотя я в Оракл и побольше запросы толкал.
Завтра утром на свежую голову попробую еще
На sql.ru есть аналогичный вопрос.
Чел пишет пример с insert в конце конструкции.
Так я тоже пробовал.
Ratings: 0 negative/0 positive
Re: Oracle with clause
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Во-первых надо бы версию указывать.
Длина значения не имеет - вот вложенность WITH, насколько я в курсе, запрещена.
Во-вторых при чём тут инсерт? Вставка в такое представление без instead of триггеров точно не пройдёт, да и с ними вполне возможно что не получится. Не понимаю, зачем что либо вставлять в агрегированные данные... Или речь про использование данного запроса с WITH в части SELECT команды INSERT?


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle with clause
boba

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
insert вот причем.
Мне было нужно результаты запроса засунуть в таблицу , и не однократно,
а периодически ее дополнять.
Поэтому сначала пробовал вариант с insert
Когда он не получился, решил сделать представление, а insert
уж из него.
Версия сервера - 11.
Утром разобрался, в чем дело.
Эта штука ругается на отсутствие
select только первый раз.
Потом, как бы одумывается, и делает, что нужно.
Ищу сейчас эту фичу по форумам, если она есть.
Ratings: 0 negative/0 positive
Re: Oracle with clause
Гулин Федор

Сообщений: 4633
Откуда: Минск
Дата регистрации: 24.10.2002
я бы пошел по пути темп. таблицы в оракле
хотя она конечно геморна тем что надо создавать заранее в отличе от мс-скл

но если она юзается потом несколько раз - то по моему самое то.
Ratings: 0 negative/0 positive
Re: Oracle with clause
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
11-х версий оракла 100500 штук самых разных. Вполне возможно что в твоей просто имеется ошибка, и нужен патч который эту ошибку исправляет. Чем выше "правые" номера, тем более стабильная (по идее) версия сервера. Но даже для самой "крайней" типа 11.2.0.4 будет огромное количество "исправлений ошибок", за которые, собственно говоря, и платят деньги те кто покупает данную СУБД
Да, если что, 11-я версия уже не поддерживается
В любом случае это в первую очередь вопрос к DBA данную БД обслуживающему/поддерживающему.

А по синтаксису и для CREATE VIEW AS ... и для INSERT INTO ... вполне можно использовать факторизованный запрос - т.е. WITH ... SELECT ...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Oracle with clause
boba

Сообщений: 6269
Откуда: Медвежьи озера-
Дата регистрации: 26.03.2001
Конечно, я сразу проверил работу with с простым запросом и
insert с этой штукой.
Работает без вопросов, ни на что не ругается.
В рабочем запросе пара left join
на запросы , где 2-3 уровня с decode, max итд
Пока тут нет insert , create view все ок.
Как они появляются, есть фокусы.
Сервером Оракл рулят администраторы,
говорить им про какие-то патчи себе дороже.
Ratings: 0 negative/0 positive
Re: Oracle with clause
Igor Korolyov
Автор

Сообщений: 34580
Дата регистрации: 28.05.2002
Хозяин - барин. Если охота самому кушать кактус, лишь бы бородатый одмин спал спокойно - это наздоровье. Но в общем то это ИХ работа, а не твоя, как разработчика...


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика