|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Здравствуйте. Вот запрос: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Выдает ошибку следующую, но в конце ошибки информация выходит, в чем может быть причина, что делаю не так, не пойму??? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 23:27 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 00:39 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag, авторORA-01403: no data found забей это в гугл и читай ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 04:10 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Так много вопросов, так мало ответов... Зачем нужен вложенный запрос? Чем не подходит обьединение (какое, решите сами)? Тип объединения автоматически определит вам логику, что делать если вложенный запрос не возвращает ни одной записи (как он и делает в начале) . А вдруг вернёт 2? И т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 06:45 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag Код: plsql 1. 2. 3. 4.
И охото же каждый раз писать всё это,вметого одного FOR )) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 09:43 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Дело в том что мне нужно обновить определенное поле в таблице BORN. А значение данного поля нужно вытащить из другого поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 09:57 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag, так есть for update ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 10:11 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synoptic, Я извиняюсь, как примерно будет выглядеть на моем коде. Я сделал так : Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 11:07 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag, выглядит нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 12:37 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Для начинающего сойдет. А дальше можно вместо count(*) читать про OUTER JOIN и тренироваться дальше. И понимать, что такое FOR UPDATE. Нужен ли он тут - большой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 12:51 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synoptic, Но почему то выполняется долго данный запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 12:51 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
dmdmdm, Не могли бы показать как именно с помощью outer join сделать. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 12:55 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 13:14 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMagdmdmdm, Не могли бы показать как именно с помощью outer join сделать. Спасибо дружище идите читать, у вас в голове каша, ничего хорошего вы сделать на данный момент не в состоянии! Том Кайт, Ферштейн, официальная дока ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 13:19 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Fogel Код: plsql 1.
Опять чушь. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 13:44 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SY, Почему именно чушь, что именно я неправильно сделал. Не судите строго, ибо я только начинаю изучать PL/SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 14:17 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMagSY, Почему именно чушь? А ты тут причем? Сие послание адресовано Fogel. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 14:35 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SY, Извини Не внимательно прочел ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 14:39 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SYОпять чушь. Соломон, это ты в последнее время порешь. И выглядит так, будто ты назло какому-то фогелю рекомендуешь другим не попадать в формат. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 16:01 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
ElicИ выглядит так, будто ты назло какому-то фогелю рекомендуешь другим не попадать в формат. Ну если тот кто читает не поймeт что формат без FX не требует совпадения разделителей, то и флаг ему в руки. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 19:20 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
dmdmdm, Не покажете как именно в моем запросе использовать OUTER JOIN. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 21:21 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag, Похоже весь этот код можно заменить одним SQL( при условии ALL_AZ_AGS.AZ_AGS_ID уникален - в противном случае ни твой код, ни мой UPDATE работать не будут): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2019, 23:26 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Если у ТС таблицы достаточно большие, то запуск такого апдейта может очень качественно подвесить ему базу )) LMag, кстати, а почему в коде коммита нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 02:24 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SYНу если тот кто читает не поймeт что формат без FX не требует совпадения разделителей, то и флаг ему в руки.Ты стал писать между строк и заставлять додумывать? - Похвально. Переход из бездумных разжёвывателей в бездумные трахатели свершился? - Так и там, и там бездумность только вредит. Хоть бы в какой в FM послал бы… ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 07:47 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
LMag ибо я только начинаю изучать PL/SQL автор... DATREG between TO_DATE('23.08.1936','DD/MM/YYYY') AND TO_DATE('29.03.1955', 'DD/MM/YYYY') ... DATREG если DATREG будет со временем то у Вас выпадет почти весь день 29.03.1955 (кроме первой секунды) ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 08:55 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synoptic, Коммит я специально не делал... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 10:10 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
UPDATE (select B.KODRA , A.KDR_FIRST_ID from BORN B, ALL_AZ_AGS A WHERE A.AZ_AGS_ID = B.AZ_AGS_ID AND A.KDR_FIRST_ID IS NOT NULL) set KODRA = KDR_FIRST_ID ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 14:31 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticЕсли у ТС таблицы достаточно большие, то запуск такого апдейта может очень качественно подвесить ему базу )) LMag, кстати, а почему в коде коммита нет? Какую базу? Все что он сделает это row level lock да еще и на возможно меньшее число строк чем SELECT FOR UPDATE в оригинале и на меньшее время (в большинстве случаев SQL быстрее чем соответствующий PL/SQL script). А вопрос про коммит вообще показывает что ты не понимаешь как работает SELECT FOR UPDATE. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 18:22 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SY, чёт фигню какую-то написал. Всё в кучу собрал )) Попробуй сделать апдейт одним запросом на таблице гигов так тысячи на 2, с обновлением строк миллионов в 10 в высоконагруженной системе. Думаю, DBA кильнёт твою сессию гораздо раньше, чем ты думаешь )) К чему тут for update - совсем не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 19:01 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synoptic гигов так тысячи на 2Обычное дело, апдейт таблиц в пару терабайт всегда поручают тем, кто не знает sql. SynopticК чему тут for update - совсем не понял.Что имел ввиду СЯ, очевидно. К месту или невпопад, но "совсем не понять" нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 19:12 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticSY, чёт фигню какую-то написал. Всё в кучу собрал )) Попробуй сделать апдейт одним запросом на таблице гигов так тысячи на 2, с обновлением строк миллионов в 10 в высоконагруженной системе. Думаю, DBA кильнёт твою сессию гораздо раньше, чем ты думаешь )) К чему тут for update - совсем не понял. Боюсь ты так ничего и не понял. 1. При всех равных условиях (10 строк или 10 миллионов строк) PL/SQL script отработает (в большинстве случаев) медленнее чем одним SQL. 2. Как только ты всунешь commit так сразу ты потеряешь транзакционность (имеет ли это значение в данном конкретном случае это другой вопрос). 3. Как только ты всунешь commit так сразу получишь: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
4. Eсли уберешь for update то рискуешь потерять данные (ты select, кто-то update+commit, ты update поверх). SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 20:28 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SY, извини, но ты пишешь очевидные вещи. Никто не спорит с тем, что SQL быстрее PL/SQL. Никто не говорит, что про то, что можно будет продолжить фечить курсор после коммита. Речь вообще о другом. Заранее извиняюсь за банальщину, но я говорил только про то, что применяя апдейты без ограничения по объёму блокировок и без оглядки на последствия, можно встрять на лёгкий паралич БД. И это будет и в случае чистого SQL и в случае PL/SQL. Сколько данных у ТС в таблице, сколько он обновляет и на сколько критичны блокировки мы не знаем. Но в высоконагруженных системах выборки лучше проводить с rownum<X, и выполнять коммиты для каждых Y строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 06:14 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synopticты пишешь очевидные вещи ... Заранее извиняюсь за банальщину...Для понимания, почему об одном "никто не говорит", а другое ты повторяешь который раз, озвучь, как ты отличаешь банальщину от очевидных вещей. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 07:05 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
-2-, если ты переформулируешь свой вопрос в вид, доступный для понимания, я постараюсь на него ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 08:02 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticНикто не спорит с тем, что SQL быстрее PL/SQL. Это, скажем так, не совсем правда, причем в обеих частях утверждения, т.е. как найдутся люди, которые данный тезис оспорят, так и найдутся ситуации, в которых pl/sql справится быстрее/лучше. Что касается "update повесит базу" - то это очень дурной термин, близко не отражающий сути происходящего. Да и не каждый админ будет рубить блокирующую сессию, не разобравшись тщательно с прогнозируемым временем отката уже произведенных сессий изменений. По крайней мере, бывалый dba - не будет, сберовские подтвердят ;) Ибо встрять можно намного жестче в сравнении с невмешательством. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 14:00 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
andrey_anonymousSynopticНикто не спорит с тем, что SQL быстрее PL/SQL. Это, скажем так, не совсем правда, причем в обеих частях утверждения, т.е. как найдутся люди, которые данный тезис оспорят, так и найдутся ситуации, в которых pl/sql справится быстрее/лучше. Речь шла про конкретные скрипты SQL и PL/SQL [quote andrey_anonymous]SynopticЧто касается "update повесит базу" - то это очень дурной термин, близко не отражающий сути происходящего. Да и не каждый админ будет рубить блокирующую сессию, не разобравшись тщательно с прогнозируемым временем отката уже произведенных сессий изменений. По крайней мере, бывалый dba - не будет, сберовские подтвердят ;) Ибо встрять можно намного жестче в сравнении с невмешательством.Понятно что есть особенности. Например у нас, если DBA видит что кто-то отъел 500 Гб SGA, и это не "разрешённые" - продуктовые логины, то в адрес инициатора сессии, а также к его руководителю летит вопрос, всё ли у него хорошо )) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 16:31 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synoptic кто-то отъел 500 Гб SGAВ buffer cache? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 16:47 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synopticвыборки лучше проводить с rownum<Xлучше почитай про first_rows(), это гораздо правильнее и не ломает оптимизатор так, как присутствие rownum. Synopticи выполнять коммиты для каждых Y строкпрощайте транзакционность, консистентность и возможность нормального роллбэка... SynopticЗаранее извиняюсь за банальщинуэто не "банальщина", а искаженный и перевранный набор недомолвок и мифов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2019, 18:05 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
xtenderлучше почитай про first_rows(), это гораздо правильнее и не ломает оптимизатор так, как присутствие rownum. В индекс нельзя передать параметр, в то время как в rownum - без проблем. Или как-то можно? xtenderпрощайте транзакционность, консистентность и возможность нормального роллбэка....Какие роллбэки на проде? И что не так с транзакционностью, консистентностью? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 05:14 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticКакие роллбэки на проде? И что не так с транзакционностью, консистентностью? надеюсь Вы притворяетесь? commit ставится там, где надо по логике. если ставить его раньше, то вся логика полетит в случае сбоя, ведь сохранится лишь часть логической транзакции. классический пример перевод денег между банковскими счетами, если поставить промежуточный комит, после которого произойдет сбой, то деньги снимутся с одного счета, а на другом не появятся ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 06:27 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
alex-lsнадеюсь Вы притворяетесь? commit ставится там, где надо по логике. А где было заявлено иное? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 08:32 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synopticalex-lsнадеюсь Вы притворяетесь? commit ставится там, где надо по логике. А где было заявлено иное?Ты балабол? Synopticкстати, а почему в коде коммита нет?Логика тебя не колышет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 08:39 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
xtenderSynopticвыборки лучше проводить с rownum<Xлучше почитай про first_rows(), это гораздо правильнее и не ломает оптимизатор так, как присутствие rownum. о каком first_rows() идет речь ? режиме оптимизатора? .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 09:03 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
ElicSynopticпропущено... А где было заявлено иное?Ты балабол? Synopticкстати, а почему в коде коммита нет?Логика тебя не колышет. заканчивай уже придумывать и начни думать. А если не понимаешь, спроси. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Какую транзакционность, консистентность нарушает коммит в данном месте? Кстати, как выделить часть кода на форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 09:23 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticКакую транзакционность, консистентность нарушает коммит в данном месте?Для утверждений про констистентность фрагмента кода не достаточно, нужно знать бизнес-правила. Одно определенно можно сказать про этот код - в нем не определено значение Y:Synopticвыполнять коммиты для каждых Y строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 09:33 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
-2-Для утверждений про констистентность фрагмента кода не достаточно, нужно знать бизнес-правила. Согласен. -2-Одно определенно можно сказать про этот код - в нем не определено значение YЭто код ТС. Да и понятно, что нужно переписывать код, чтобы "выполнять коммиты для каждых Y строк" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 09:52 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
SynopticДа и понятно, что нужно переписывать код, чтобы "выполнять коммиты для каждых Y строк" не надо переписывать! в этом и смысл, что commit там, где должен быть по логике. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2019, 16:17 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
alex-ls, речь немного о другом ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 02:49 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synopticxtenderлучше почитай про first_rows(), это гораздо правильнее и не ломает оптимизатор так, как присутствие rownum. В индекс нельзя передать параметр, в то время как в rownum - без проблем. Или как-то можно?что за бред... Какой ещё параметр в индекс? SynopticКакие роллбэки на проде? И что не так с транзакционностью, консистентностью?ох, рановато тебе ещё такие темы обсуждать.. Ты всерьёз считаешь, что роллбэки только для тестовых или девелоперских сред? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 04:35 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
Synopticalex-ls, речь немного о другом "да как же тебя понять, если ты ничего не говоришь?" Заметьте, никто не понял, что Вы хотите, Вам стоит посидеть подумать и только потом писать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 04:45 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
alex-ls"да как же тебя понять, если ты ничего не говоришь?" Заметьте, никто не понял, что Вы хотите, Вам стоит посидеть подумать и только потом писать :)Картинка сложится, если прочитать от и до. Если же выдирать фразы из контекста, то получаем как раз то, что имеем ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 06:34 |
|
Курсор. Помогите с запросом.
|
|||
---|---|---|---|
#18+
xtenderчто за бред... Какой ещё параметр в индекс?Опечатка. "Параметр в хинт" имелся в виду. xtenderох, рановато тебе ещё такие темы обсуждать.. Ты всерьёз считаешь, что роллбэки только для тестовых или девелоперских сред?Почему же? Всё зависит от задачи. Если у тебя есть куча шагов, которые нужно пройти и получить "Ок" на каждом, понятно что в таком БП роллбек может пригодится. Но опять же, есть два подхода: 1. Выполняем все операции процесса и только в конце комитим. 2. Выполняем последовательность операций, с фиксацией результата каждой. В случае неуспеха на каком-то из этапов, выполняем обратные операции. Как путь использовать, решает РП. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2019, 06:40 |
|
|
start [/forum/topic.php?all=1&fid=52&tid=1882357]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 223ms |
0 / 0 |