|
|
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Подскажите,плиз, новичку , можно ли и Как заставить Reports Builder (или те же мастера портала ) брать данные из заранее неизвестной таблицы Oracle, т.е. как перед созданием отчета создать (например, в предотчетном триггере, вызывающем некоторую хранимую процедуру ) временную табличку со случайным именем и потом в тригеррах Reports Builder использовать именно это случайное имя. Проблема у меня в том, что Как я понял все мастера в Reports Builder ( или портальные мастера отчетов ) требуют указания заранее известного имени уже существующей таблицы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:23 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
А не надо таблицы на лету генерировать - и массы других проблем не будет тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:25 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Насчет портала не скажу - не знаю, а в отчетах надо использовать лексические параметры подстановки в запросах. То есть запрос будет выглядеть примерно так select &col1 col1, &col2 col2, &col3 col3 from &tab t (по желанию where и т.д.) При этом обязательно надо использовать псевдонимы для колонок и таблиц. Остальное надо смотреть в документации... В остальном я согласен с предыдущим ответом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:40 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
To Scott Tiger : Хм, нет, ну интересно, а если именно надо... то что же Oracle этого не может что ли ?.. Да и вообще, честно говоря, возможно это у меня от слабого еще понимания Oracle. Но мне кажется , что, например, отчеты именно так и надо делать: отчет создает некая последовательность отчетных триггеров создавая некие промежуточные временные таблицы и эти промежуточные временные таблицы должны быть, по всей видимости, иметь некоторое временное, случайное имя, чтобы не было конфликта с другим юзером запустившим этот отчет, или хоть объясните тогда как разрешить этот конфликт,... хотя при любом объяснении первоначальный вопрос остается интересным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:41 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
to yuniki чтобы не было конфликта с другим юзером запустившим этот отчет для этого по моему есть как минимум одно неплохое решение: использовать global temporary table и никакие конфликты будут не страшны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:53 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
привет всем. -- 2yuniki: ..старая уже тема. когда я работал в mssql, то там стиль создания на лету временных таблиц в качестве промежуточного буфера явлется нормальным и удобным, т.к. концепция mssql НЕ предусматривает выделенного администратора базы. -- НО! В Oracle ВСЕ ddl-обьекты базы являются исключительной прерогативой администратора базы. с этим надо засыпать и просыпаться.( а то рядом будет Scott " с тупым кухонным ножом.." и это правильно ) -- Oracle - это корпоративная база предназначенная для хранения очень больших обьемов и без админом она не живет - и все тут. А если надо буфера данных - то надо обьявлять заранее обьекты типа "create global temporary table.." или "create type as object.." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:55 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
yuniki, это неправильная мысль насчёт создания таблиц на лету. Если ты не можешь по той или иной причине обойтись при создании отчёта без временных таблиц, во-первых, используй именно global temporary tables, которые on commit delete rows - это изолирует тебя от проблем с изоляцией временных данных от других транзакций и даёт эффект очистки таблицы от результатов запроса по факту окончания транзакции. Во-вторых, не надо создавать даже временные таблицы "на лету" - по сути, для каждого отчёта набор и структура временных таблиц с течением времени не меняется - так зачем насиловать СУБД в такой извращённой форме? Случайные имена - плохая практика. Oracle поддерживает достаточно длинные идентификаторы объектов не для того, чтобы 90% названия были случайной последовательностью символов и за счёт большой длины минимизировать вероятность возникновения ошибки при создании объекта с "занятым" именем :) Подумай насчёт того, что с твоим софтом будет работать кто-либо ещё, кроме автора. Пожалей нас, скромных тружеников саппорта. Про создание "на лету" обычных таблиц для использования в качестве временных, да ещё и со случайным именем скорбно промолчу. Могу продемонстрировать парочку зад.оченных таким софтом до смерти экземпляров (инстансов? :) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:55 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 yuniki. Подскажите,плиз, новичку , можно ли и Как заставить Reports Builder (или те же мастера портала ) брать данные из заранее неизвестной таблицы Oracle, А внешний вид тоже заранее не известен ? :-) Т.е не понятно если данные не известны, то как отобрабать данные тоже не известно заранее как надо. Одно дело , когда это документ первичный, а другое когда это справка куда-то внешний вид отчетов разный должен быть. Поясните ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 10:59 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Поддерживаю - не надо бы создавать случайные таблички со случайной структурой. В Oracle есть механизм temporary tables. Возможно это то, что тебе нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:03 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Человек задал один вопрос, а ему дают рекомендацию совсем про другое. При выполнении отчетов сплошь и рядом приходится создавать временные таблицы. Другое дело, что можно без них обойтись, но тогда запросы становятся сложнее или выполняются гораздо дольше допустимого. Но у этих таблиц структура одинакова. Если структура становится произвольной - значит разработчик не понимает смысл отчета. И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:10 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 denim. На мой взгляд и временные тоже не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:11 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 AI : >И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать. Scott где ты? где твой тупой кухонный нож ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:13 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
to Al Согласен на счёт небольшого отклонения от темы вопроса. Но категорически против И как бы не ругались администраторы базы, если это необходимо для дела - их мнение надо игнорировать . Это в корне неправильный подход, который ни к чему хорошему ещё ни разу не приводил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:16 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 Al Человек задал один вопрос, а ему дают рекомендацию совсем про другое. При выполнении отчетов сплошь и рядом приходится создавать временные таблицы. Тут как раз наблюдаеться правильный подход к задаче. Сначала выяснить задачу, а потом подумаь над решением. А не поощрять гнилое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:22 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Слушайте, ну развели бодягу... СпокойнЕе, товарищи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 11:37 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 Vladimir_ Когда администратор просит "почаще делать коммит", из-за чего усложняется логика из-за снятия блокировок и отчеты все время падают по snapshot too old что вы делаете? Я посылаю такого админа подальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:01 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Временные таблицы имеет смысл создавать, при исползовании данных несколько раз. Если отчет будет запускаться одновременно, либо будут меняться данные, то этого делать нельзя. Лучше всего пользоваться представлениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:01 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
to Al есть определённые правила разработки приложений и баз данных. Каждый должен заниматься своим делом. В нормально продуманной системе такие вопросы врядли поднимаются. Посылать админа подальше - это наверное крик души. Лучше найти с ним общий язык. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:10 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Vladimir_, Al, по-моему, неквалифицированных девелоперов больше и вреда от них больше, чем от неквалифицированных админов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:20 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
М-да, господа, я не успеваю просматривать ... 2Oracle_Developer: >А внешний вид тоже заранее не известен ? :-) Все известно, кроме того как решить в серверной СУБД проблему(для новичка) наложения одних и тех же имен промежуточных таблиц при многопользовательской работе. Но вот все говорят про TEmporary table space, хорошо ... , я не знал. Но !!! To Scott Tiger : >Случайные имена - плохая практика. ... минимизировать вероятность ... Так сказал же Al - использовать псевдонимы, а вероятности никакой нет - случайные имена должны создаваться несовпадающие с именами существующих таблиц . To Oracle_Developer: > На мой взгляд и временные тоже не нужны. Так как же строить сложные(т.е. обычные) отчеты - то . Как в языке нам нужны переменные (которые как Вы могли заметить тоже всегда временные - на время существования программы) так нам необходима и их разновидность - временные таблички. Только для совсем до странности простых (и как показывает практика - невостребованных) отчетов временные структуры не нужны To EKUKU : >Но! В Oracle ВСЕ ddl-обьекты базы являются исключительной прерогативой администратора базы Так мне , как будущему разработчику, нужно построить динамическую а не статическую модель моей системы ( у меня есть опыт создания СУБД, но с администрируемыми СУБД я не работал - отсюда и проблемы) . А что касается наличия администратора, то ничего хорошего в усложнении таким образом СУБД я не наблюдаю, лучше бы делать так ,чтобы его не было To ALL: В общем , как я понял , следует использовать Temporary table , они и решат в этом смысле проблему многопользовательской работы над одним отчетом Ну а с портальными визардами - что никто не работал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:25 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Hardex, попробуй обосновать свою точку зрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:26 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
Vladimir_, Al, по-моему, неквалифицированных девелоперов больше и вреда от них больше, чем от неквалифицированных админов. У неквалифицированного девелопера все равно что-то будет криво, медленно, но работать, делать то, что надо пользователям. Ради этого, собственно, и ставится система. У неквалифицированного админа перестанет работать все. В этом вся разница. Иногда дешевле купить более мощную железку, чем переделывать "как надо" - тратить деньги и, главное, время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:30 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
но с администрируемыми СУБД я не работал. А что касается наличия администратора... лучше бы делать так ,чтобы его не было Сильно сказано :) В "Сравнение" закинуть, что ли... Только вот жрать мне тоже хочется :) >Но вот все говорят про TEmporary table space, хорошо ... , я не знал. Теперь знай. Только temporary tablespace к global temporary table имеет отношение разве что как однокоренные слова. >>Случайные имена - плохая практика. ... минимизировать вероятность ... Это была шутка юмора. >Так сказал же Al - использовать псевдонимы, а вероятности никакой нет - >случайные имена должны создаваться несовпадающие с именами >существующих таблиц . Не нужно никаких случайных имён. GTT живёт постоянно как объект, однако строки содержит либо в течение транзакции, либо в течение сессии (как нарисуешь). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:36 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
2 yuniki: >Так мне , как будущему разработчику, нужно построить динамическую а не >статическую модель моей системы ( у меня есть опыт создания СУБД, но с> >администрируемыми СУБД я не работал - отсюда и проблемы) . А что >касается наличия администратора, то ничего хорошего в усложнении таким >образом СУБД я не наблюдаю, лучше бы делать так ,чтобы его не было -- твой вопрос приводится к классическому определению нормализованной формы при проектировании системы и возможности динамической денормализации данных и их согласованию с нормализованной формой во время исполнения/runtime системы. для этого в оракле существует механизм типа materialized view ,т.е. возможность денормализовать данные и взгляд на них с учетом контроля и согласования с основным источником из нормализованных таблиц ( например справочников ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 12:58 |
|
||
|
Как построить отчет из таблицы с заранее неизвестным именем
|
|||
|---|---|---|---|
|
#18+
..еще продолжу.. так вот , для создания динамических систем ,основанных на чтении данных из репозитория системы или метасхемы данных ( т.н. business layer ), следует относится очень осторожно и это требует высокой квалификацииЮ но это отнюдь не отменяет основные требования к реляционным базам и их администрированию и масштабированию по нагрузке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2003, 13:03 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32157301&tid=1990630]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 453ms |

| 0 / 0 |
