powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как построить отчет из таблицы с заранее неизвестным именем
25 сообщений из 42, страница 1 из 2
Как построить отчет из таблицы с заранее неизвестным именем
    #32157181
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите,плиз, новичку , можно ли и Как заставить Reports Builder (или те же мастера портала ) брать данные из заранее неизвестной таблицы Oracle, т.е. как перед созданием отчета создать (например, в предотчетном триггере, вызывающем некоторую хранимую процедуру ) временную табличку со случайным именем и потом в тригеррах Reports Builder использовать именно это случайное имя.
Проблема у меня в том, что Как я понял все мастера в Reports Builder ( или портальные мастера отчетов ) требуют указания заранее известного имени уже существующей таблицы ...
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157183
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не надо таблицы на лету генерировать - и массы других проблем не будет тоже.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157195
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет портала не скажу - не знаю, а в отчетах надо использовать лексические параметры подстановки в запросах. То есть запрос будет выглядеть примерно так

select &col1 col1, &col2 col2, &col3 col3
from &tab t
(по желанию where и т.д.)

При этом обязательно надо использовать псевдонимы для колонок и таблиц. Остальное надо смотреть в документации...

В остальном я согласен с предыдущим ответом.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157196
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Scott Tiger :
Хм, нет, ну интересно, а если именно надо... то что же Oracle этого не может что ли ?..
Да и вообще, честно говоря, возможно это у меня от слабого еще понимания Oracle.
Но мне кажется , что, например, отчеты именно так и надо делать:
отчет создает некая последовательность отчетных триггеров создавая некие промежуточные временные таблицы и эти промежуточные временные таблицы должны быть, по всей видимости, иметь некоторое временное, случайное имя, чтобы не было конфликта с другим юзером запустившим этот отчет, или хоть объясните тогда как разрешить этот конфликт,... хотя при любом объяснении первоначальный вопрос остается интересным
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157206
Vladimir_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to yuniki чтобы не было конфликта с другим юзером запустившим этот отчет
для этого по моему есть как минимум одно неплохое решение: использовать global temporary table и никакие конфликты будут не страшны
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157209
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет всем.
--
2yuniki:
..старая уже тема. когда я работал в mssql, то там стиль создания на лету временных таблиц в качестве промежуточного буфера явлется нормальным и удобным, т.к. концепция mssql НЕ предусматривает выделенного администратора базы.
--
НО! В Oracle ВСЕ ddl-обьекты базы являются исключительной прерогативой администратора базы. с этим надо засыпать и просыпаться.( а то рядом будет Scott " с тупым кухонным ножом.." и это правильно )
--
Oracle - это корпоративная база предназначенная для хранения очень больших обьемов и без админом она не живет - и все тут. А если надо буфера данных - то надо обьявлять заранее обьекты типа "create global temporary table.." или "create type as object.."
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157210
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yuniki, это неправильная мысль насчёт создания таблиц на лету. Если ты не можешь по той или иной причине обойтись при создании отчёта без временных таблиц, во-первых, используй именно global temporary tables, которые on commit delete rows - это изолирует тебя от проблем с изоляцией временных данных от других транзакций и даёт эффект очистки таблицы от результатов запроса по факту окончания транзакции. Во-вторых, не надо создавать даже временные таблицы "на лету" - по сути, для каждого отчёта набор и структура временных таблиц с течением времени не меняется - так зачем насиловать СУБД в такой извращённой форме? Случайные имена - плохая практика. Oracle поддерживает достаточно длинные идентификаторы объектов не для того, чтобы 90% названия были случайной последовательностью символов и за счёт большой длины минимизировать вероятность возникновения ошибки при создании объекта с "занятым" именем :) Подумай насчёт того, что с твоим софтом будет работать кто-либо ещё, кроме автора. Пожалей нас, скромных тружеников саппорта.

Про создание "на лету" обычных таблиц для использования в качестве временных, да ещё и со случайным именем скорбно промолчу. Могу продемонстрировать парочку зад.оченных таким софтом до смерти экземпляров (инстансов? :) )
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157214
Oracle_Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 yuniki.

Подскажите,плиз, новичку , можно ли и Как заставить Reports Builder (или те же мастера портала ) брать данные из заранее неизвестной таблицы Oracle,

А внешний вид тоже заранее не известен ? :-) Т.е не понятно если данные не известны, то как отобрабать данные тоже не известно заранее как надо. Одно дело , когда это документ первичный, а другое когда это справка куда-то внешний вид отчетов разный должен быть. Поясните
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157219
denim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поддерживаю - не надо бы создавать случайные таблички со случайной структурой. В Oracle есть механизм temporary tables. Возможно это то, что тебе нужно.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157230
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Человек задал один вопрос, а ему дают рекомендацию совсем про другое. При выполнении отчетов сплошь и рядом приходится создавать временные таблицы. Другое дело, что можно без них обойтись, но тогда запросы становятся сложнее или выполняются гораздо дольше допустимого. Но у этих таблиц структура одинакова. Если структура становится произвольной - значит разработчик не понимает смысл отчета.

И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157231
Oracle_Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 denim. На мой взгляд и временные тоже не нужны.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157238
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 AI :

>И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать.

Scott где ты? где твой тупой кухонный нож ?
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157241
Vladimir_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Al
Согласен на счёт небольшого отклонения от темы вопроса. Но категорически против И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать . Это в корне неправильный подход, который ни к чему хорошему ещё ни разу не приводил.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157249
Oracle_Developer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Al

Человек задал один вопрос, а ему дают рекомендацию совсем про другое. При выполнении отчетов сплошь и рядом приходится создавать временные таблицы.

Тут как раз наблюдаеться правильный подход к задаче. Сначала выяснить задачу, а потом подумаь над решением. А не поощрять гнилое решение.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157278
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте, ну развели бодягу... СпокойнЕе, товарищи :)
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157301
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vladimir_

Когда администратор просит "почаще делать коммит", из-за чего усложняется логика из-за снятия блокировок и отчеты все время падают по snapshot too old что вы делаете? Я посылаю такого админа подальше.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157302
Hardex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Временные таблицы имеет смысл создавать, при исползовании данных несколько раз. Если отчет будет запускаться одновременно, либо будут меняться данные, то этого делать нельзя. Лучше всего пользоваться представлениями.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157317
Vladimir_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Al
есть определённые правила разработки приложений и баз данных. Каждый должен заниматься своим делом. В нормально продуманной системе такие вопросы врядли поднимаются. Посылать админа подальше - это наверное крик души. Лучше найти с ним общий язык.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157335
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_, Al, по-моему, неквалифицированных девелоперов больше и вреда от них больше, чем от неквалифицированных админов.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157340
yuniki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
М-да, господа, я не успеваю просматривать ...

2Oracle_Developer:
>А внешний вид тоже заранее не известен ? :-)

Все известно, кроме того как решить в серверной СУБД проблему(для новичка) наложения одних и тех же имен промежуточных таблиц при многопользовательской работе.
Но вот все говорят про TEmporary table space, хорошо ... , я не знал.

Но !!!

To Scott Tiger :
>Случайные имена - плохая практика. ... минимизировать вероятность ...

Так сказал же Al - использовать псевдонимы, а вероятности никакой нет - случайные имена должны создаваться несовпадающие с именами существующих таблиц .

To Oracle_Developer:
> На мой взгляд и временные тоже не нужны.

Так как же строить сложные(т.е. обычные) отчеты - то .
Как в языке нам нужны переменные (которые как Вы могли заметить тоже всегда временные - на время существования программы) так нам необходима и их разновидность - временные таблички. Только для совсем до странности простых (и как показывает практика - невостребованных) отчетов временные структуры не нужны

To EKUKU :
>Но! В Oracle ВСЕ ddl-обьекты базы являются исключительной прерогативой администратора базы

Так мне , как будущему разработчику, нужно построить динамическую а не статическую модель моей системы ( у меня есть опыт создания СУБД, но с администрируемыми СУБД я не работал - отсюда и проблемы) . А что касается наличия администратора, то ничего хорошего в усложнении таким образом СУБД я не наблюдаю, лучше бы делать так ,чтобы его не было

To ALL:
В общем , как я понял , следует использовать Temporary table , они и решат в этом смысле проблему многопользовательской работы над одним отчетом
Ну а с портальными визардами - что никто не работал ?
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157343
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hardex, попробуй обосновать свою точку зрения.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157350
AI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir_, Al, по-моему, неквалифицированных девелоперов больше и вреда от них больше, чем от неквалифицированных админов.

У неквалифицированного девелопера все равно что-то будет криво, медленно, но работать, делать то, что надо пользователям. Ради этого, собственно, и ставится система. У неквалифицированного админа перестанет работать все. В этом вся разница. Иногда дешевле купить более мощную железку, чем переделывать "как надо" - тратить деньги и, главное, время.
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157355
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но с администрируемыми СУБД я не работал. А что касается наличия администратора... лучше бы делать так ,чтобы его не было

Сильно сказано :) В "Сравнение" закинуть, что ли...

Только вот жрать мне тоже хочется :)

>Но вот все говорят про TEmporary table space, хорошо ... , я не знал.

Теперь знай. Только temporary tablespace к global temporary table имеет отношение разве что как однокоренные слова.

>>Случайные имена - плохая практика. ... минимизировать вероятность ...

Это была шутка юмора.

>Так сказал же Al - использовать псевдонимы, а вероятности никакой нет -
>случайные имена должны создаваться несовпадающие с именами
>существующих таблиц .

Не нужно никаких случайных имён. GTT живёт постоянно как объект, однако строки содержит либо в течение транзакции, либо в течение сессии (как нарисуешь).
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157399
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 yuniki:

>Так мне , как будущему разработчику, нужно построить динамическую а не >статическую модель моей системы ( у меня есть опыт создания СУБД, но с> >администрируемыми СУБД я не работал - отсюда и проблемы) . А что >касается наличия администратора, то ничего хорошего в усложнении таким >образом СУБД я не наблюдаю, лучше бы делать так ,чтобы его не было
--
твой вопрос приводится к классическому определению нормализованной формы при проектировании системы и возможности динамической денормализации данных и их согласованию с нормализованной формой во время исполнения/runtime системы. для этого в оракле существует механизм типа materialized view ,т.е. возможность денормализовать данные и взгляд на них с учетом контроля и согласования с основным источником из нормализованных таблиц ( например справочников )
...
Рейтинг: 0 / 0
Как построить отчет из таблицы с заранее неизвестным именем
    #32157410
Ekuku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
..еще продолжу..
так вот , для создания динамических систем ,основанных на чтении данных из репозитория системы или метасхемы данных ( т.н. business layer ), следует относится очень осторожно и это требует высокой квалификацииЮ но это отнюдь не отменяет основные требования к реляционным базам и их администрированию и масштабированию по нагрузке
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как построить отчет из таблицы с заранее неизвестным именем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]