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, но сразу упала в разы производительность. |
Re: Oracle with clause | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
asktom.oracle.com
Только не стоит рассчитывать на то что запросы к этому VIEW будут работать по тому же плану что и просто запрос начинающийся с WITH. ------------------ WBR, Igor |
Re: Oracle with clause | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Игорь, спасибо
Именно так я и пробовал и view создавать, и insert в таблицу приладить. Всякий раз говорит, нет select Может, дело в длине конструкции, хотя я в Оракл и побольше запросы толкал. Завтра утром на свежую голову попробую еще На sql.ru есть аналогичный вопрос. Чел пишет пример с insert в конце конструкции. Так я тоже пробовал. |
Re: Oracle with clause | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Во-первых надо бы версию указывать.
Длина значения не имеет - вот вложенность WITH, насколько я в курсе, запрещена. Во-вторых при чём тут инсерт? Вставка в такое представление без instead of триггеров точно не пройдёт, да и с ними вполне возможно что не получится. Не понимаю, зачем что либо вставлять в агрегированные данные... Или речь про использование данного запроса с WITH в части SELECT команды INSERT? ------------------ WBR, Igor |
Re: Oracle with clause | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
insert вот причем.
Мне было нужно результаты запроса засунуть в таблицу , и не однократно, а периодически ее дополнять. Поэтому сначала пробовал вариант с insert Когда он не получился, решил сделать представление, а insert уж из него. Версия сервера - 11. Утром разобрался, в чем дело. Эта штука ругается на отсутствие select только первый раз. Потом, как бы одумывается, и делает, что нужно. Ищу сейчас эту фичу по форумам, если она есть. |
Re: Oracle with clause | |
---|---|
Гулин Федор Сообщений: 4633 Откуда: Минск Дата регистрации: 24.10.2002 |
я бы пошел по пути темп. таблицы в оракле
хотя она конечно геморна тем что надо создавать заранее в отличе от мс-скл но если она юзается потом несколько раз - то по моему самое то. |
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 |
Re: Oracle with clause | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
Конечно, я сразу проверил работу with с простым запросом и
insert с этой штукой. Работает без вопросов, ни на что не ругается. В рабочем запросе пара left join на запросы , где 2-3 уровня с decode, max итд Пока тут нет insert , create view все ок. Как они появляются, есть фокусы. Сервером Оракл рулят администраторы, говорить им про какие-то патчи себе дороже. |
Re: Oracle with clause | |
---|---|
Igor Korolyov Автор Сообщений: 34580 Дата регистрации: 28.05.2002 |
Хозяин - барин. Если охота самому кушать кактус, лишь бы бородатый одмин спал спокойно - это наздоровье. Но в общем то это ИХ работа, а не твоя, как разработчика...
------------------ WBR, Igor |
© 2000-2024 Fox Club  |