|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
Доброго времени суток, есть ли способ узнать имя схемы из запроса вида: SELECT * FROM ( SELECT * FROM schema1.table union SELECT * FROM schema2.table ) ??? Результат возвращается, только не понятно из какой схемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 16:07 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
dxdy Доброго времени суток, есть ли способ узнать имя схемы из запроса вида: Код: plsql 1. 2. 3.
??? Результат возвращается, только не понятно из какой схемы. Узнать то можно, вот только мне кажется постановка задачи какая-то кривая. Зачем сначала все валить в кучу, а потом разбираться что откуда? Задача-то какая? Тем более используется UNION, где результат не детерминирован, какая из одинаковых записей разных таблиц будет использоваться в выводе. Так-то, rowid - имеет адрес блока, зная его можно найти объект которому принадлежит эта запись. но это лечение гланд через очень неожиданное отверстие. памятка: HOWTO :: Как правильно задавать вопросы Как мне оформить свое сообщение? Студентам, желающим помощи 1) Полная постановка задачи (без сокращений) 2) Подготовьте тестовые данные, лучше в виде with пример (не ваш случай) в конце 3) Покажите что сделали, что получили, без сокращений. ( лучше не в виде screenshot) 4) используйте Тэги, читать код без них неудобно, правильно оформляйте сообщение Пример подготовленных данных, запроса и вывода. Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 16:29 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
Только заменив UNION на GROUP BY + LISTAGG. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 16:37 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 16:48 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
SY, TBL1 и TBL2 визуально загромождают запись. Тег источника вполне сразу прописывается в Union All. Ну и, в данном случае, ListAgg вполне может быть заменено на Sum(). если вместо 'T1' SOURCE в соответствующей ветке написать 1 as Source, а вместо 'T2' SOURCE - 2 as Source, тогда значениями Sum(source) as Source будут 1,2, или 3 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 18:57 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
booby SY, TBL1 и TBL2 визуально загромождают запись. Тег источника вполне сразу прописывается в Union All. Ну и, в данном случае, ListAgg вполне может быть заменено на Sum(). если вместо 'T1' SOURCE в соответствующей ветке написать 1 as Source, а вместо 'T2' SOURCE - 2 as Source, тогда значениями Sum(source) as Source будут 1,2, или 3 TBL1 & TBL2 нужны. Я просто cut & paste не оттуда. Taм должен быть DISTINCT: Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
Иначе LISTAGG может вылететь с ORA-01489 а SUM ещё хуже - показывать 2 или 3 хотя строки из одной таблица. Но SOURCE можно перенести в UNION ALL. Другое решение: Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 20:01 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
Такое подозрение, что у автора стоит задача обрабатывать данные разных удалённых подразделений в некоей куче. Вот и сливают их как-то на один сервер в разные схемы, а потом в общей аналитике нужно как-то их различать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 20:11 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
SY Taм должен быть DISTINCT: ...а SUM ещё хуже ... ok, ok... В свежих версиях под это появились агрегатные функции, возвращающие raw. Ответ предполагает, что спрашивающий точно понимает смысл слов, которые произносит, в частности, что такое union. На что ни малейшего намека нет. PS Вот эта тема точно схожего рода задачей рождалась. https://www.sql.ru/forum/1329204/msb-most-significant-bit-na-pl-sql-est-gotovyy ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2022, 21:06 |
|
Узнать имя схемы из объединенного запроса по нескольким схемам
|
|||
---|---|---|---|
#18+
SY SUM ещё хуже Код: 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. 30. 31. 32. 33. 34. 35. 36. 37.
или битовую маску .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2022, 10:27 |
|
|
start [/forum/topic.php?fid=52&gotonew=1&tid=1879502]: |
0ms |
get settings: |
17ms |
get forum list: |
8ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
38ms |
get topic data: |
5ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
234ms |
get tp. blocked users: |
1ms |
others: | 2450ms |
total: | 2760ms |
0 / 0 |