|
|
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Добрый день товарищи. Такой вопрос, как можно реализовать динамическое подставление дблинков в sql код отчета. То есть должен быть один созданный регион (report), где есть обычный sql запрос select from и где должен подставляться дблинк в нужных местах. p.s. Cоздавать под каждую базу свой статичный репорт с заданным дблинком уж очень геморно, так как этих баз больше 50 :(( Как можно обойти эту проблему? Буду рад любым подсказкам)) Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2014, 16:27 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, не понял. Репорт должен сидеть на вьюхе. Вьюха создаётся средствами оракла. Сколько динамики даёт Оракл внутри вьюхи, столько будет и в APEX. Т.е.: - есть case операторы в select - можно хранимку добавить, где будет return любая строка наружу - можно сделать в отчёте case :PXXXX_условие_снаружи_отчёта Т.е. средств полно. Давай конкретнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2014, 20:18 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Petro123seoni, не понял. Репорт должен сидеть на вьюхе. Вьюха создаётся средствами оракла. Сколько динамики даёт Оракл внутри вьюхи, столько будет и в APEX. Т.е.: - есть case операторы в select - можно хранимку добавить, где будет return любая строка наружу - можно сделать в отчёте case :PXXXX_условие_снаружи_отчёта Т.е. средств полно. Давай конкретнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2014, 22:43 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Petro123seoni, не понял. Репорт должен сидеть на вьюхе. Вьюха создаётся средствами оракла. Сколько динамики даёт Оракл внутри вьюхи, столько будет и в APEX. Т.е.: - есть case операторы в select - можно хранимку добавить, где будет return любая строка наружу - можно сделать в отчёте case :PXXXX_условие_снаружи_отчёта Т.е. средств полно. Давай конкретнее. Сори, если как то непонятно выразился, я новичок в этом деле)) Попробую еще раз объяснить более конкретно. Допустим есть обычный селект лист со списком баз данных, нужно чтобы при выборе нужной БД из этого селект листа, в sql код репорта select * from таблица подставлялся дблинк. p.s. увы, лучше без хранимки реализовать, если есть такая возможность) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2014, 22:44 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, Db link в секции from? Или хотим менять текст запроса в from? Тогда изврат. Делай 50 страниц или одну страницу на хранимке. Ведь их для этого придумали. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2014, 11:50 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, фактически ты хочешь менять в репорте всю таблицу. не получится. в репорт можно подставлять параметры в WHERE, можно подставлять значения в SELECT, но подставить другую таблицу ты не сможешь, т.к. в другом овнере у нее могут быть другие поля, другие атрибудты. апекс ее воспринимает как полностью другую таблицу, даже если у них одинаковые названия и кол-во полей, при замене дблинка это становится абсолютно другая таблица, как и ее соответственно репорт атрибуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 07:46 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, вперед спамить репорты и задавать каждому условие для отображения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 07:54 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, Никого не слушай, все можно. Динамически сформировать запрос в функции Делаешь функцию, на входе у нее имя твоего дблинка, на выходе запрос. А апексе выбираешь тип = SQL Query (PL/SQL function body returning SQL query). Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 09:09 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
blkangelНикого не слушай, все можно. угу. И так можно: Код: sql 1. 2. 3. 4. 5. 6. главное никого не слушать) и знать ...для какого заказчика это писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 11:12 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Petro123, Добро пожаловатть в веб. Если нарушены правила форума, есть кнопка внизу. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 11:30 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, &ITEM_NAME. + Use Generic Column Names (parse query at runtime only) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 11:43 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
blkangel, разумеется мы в вебе). Чем больше решений, тем лучше. Идеальных решений нет. А программист может всё написать. Пусть автор решает. Мне вот, ответ Вадиман нравится: авторSQL - это structured query language. Ключевое слово - structured. Т.е. вы работаете не с мусором, а со структурированными данными. Т.е. с данными, имеющими структуру. Количество полей, их типы - это часть структуры. Вы не хотите их знать. Как вы хотите работать с этими данными посредством SQL? Множественная конкатенация ЗЫ. Названия колонок в автомате на русском языке не работают (4.1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 11:58 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Спасибо всем огромное, на днях буду пробовать. Надеюсь проблему решиться, позже отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2014, 20:04 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
blkangelseoni, Никого не слушай, все можно. Динамически сформировать запрос в функции Делаешь функцию, на входе у нее имя твоего дблинка, на выходе запрос. А апексе выбираешь тип = SQL Query (PL/SQL function body returning SQL query). Код: plsql 1. 2. 3. Не получается :( Скорее всего, что-то делаю не так... Вообщем создал итем list of values забил ему Display Value база1 и Return Value (@dblink) Создал репорт с запросом в функции типа SQL Query (PL/SQL function body returning SQL query) такого вида: Begin return 'select * from dept'||:P1_dblink||'; end; Пытаюсь сохранить репорт в результате ругается и не дает этого сделать (Function returning SQL query: Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the generic columns checkbox below the region source to proceed without parsing. (ORA-06550: line 2, column 38: PLS-00103: Encountered the symbol "; end; return null; end; begin wwv_flow.g_value := x; end;" when expecting one of the following: ( - + case mod new null continue avg count current max min prior sql stddev sum variance execute forall merge time timestamp interval date pipe) Короче нубу нужен хелп и дальнейшие советы. Проблема остается открытой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2015, 23:21 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Пардон, сам косякнул в коде. Все работает, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.01.2015, 23:35 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Ап теме, вновь проблема. Создал селект лист который возвращает параметры вида @db_link. Создал репорт регион с SQL Query (PL/SQL function body returning SQL query) самого простого вида для того, чтобы убедиться в том, что все работает begin return 'select * from таблица@'||:P1_db_link||''; end; В итоге в репорт регионе получаю ошибку: report error: ORA-01403: no data found Как так ни хрена не пойму... Причем заметил, что если юзать Use Generic Column names (parse query at runtime only), а не Use Query-Specific Column Names and Validate Query, то все ок и отлично работает, но само собой колонки уже переименованы и это для меня неприемлимо... Так в чем же может быть косяк господа? Или дайте альтернативу, как еще можно сделать нормальный отчет в который можно будет вставлять динамически дблинки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 17:19 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoniПричем заметил, что если юзать Use Generic Column names ничего не понял. Там есть автоматические имена колонок в ГУИ на английском из имён полей запроса. Работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 17:28 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Petro123seoniПричем заметил, что если юзать Use Generic Column names ничего не понял. Там есть автоматические имена колонок в ГУИ на английском из имён полей запроса. Работает? Ну там он именует колонки по своему, вроде формат, что то типо C_0_0, C_0_1, ..... , C_0_9 и т. д., точно не помню. Ну мне желательно, чтобы колонки имели наименование, как в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 18:59 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoni, Как в бд он строит в момент создания отчета. Т.е Запрос Не в динамике и склейкой текста. Такой изврат стоит денег, т.к. отчет нужно делать через API IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 19:05 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
Мои две копейки: 0. Тело PL/SQL-функции в указанных условиях там не нужно, хватит простого запроса: Код: plsql 1. 2. Как в выделенное поле подставить линк либо NULL, уже забота автора. 1. APEX 4.2.1, источник данных из прошлого пункта, результат прикреплён. Так что какие будут заголовки у столбцов, зависит только от автора запроса. Если запрос для всех БД одинаков, то какая разница, что работать в интерфейсе придётся, грубо говоря, с номерами вместо псевдонимов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2015, 20:58 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
suPPLerМои две копейки: 0. Тело PL/SQL-функции в указанных условиях там не нужно, хватит простого запроса: Код: plsql 1. 2. Как в выделенное поле подставить линк либо NULL, уже забота автора. 1. APEX 4.2.1, источник данных из прошлого пункта, результат прикреплён. Так что какие будут заголовки у столбцов, зависит только от автора запроса. Если запрос для всех БД одинаков, то какая разница, что работать в интерфейсе придётся, грубо говоря, с номерами вместо псевдонимов? Та же история, почему то в репорт регионе выдает ошибку Report error: ORA-01403:no data found Короче буду юзать generic column и не парить себе мозг... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 07:33 |
|
||
|
ДБ линки в sql коде репорта
|
|||
|---|---|---|---|
|
#18+
seoniТа же история, почему то в репорт регионе выдает ошибку Report error: ORA-01403:no data found Для ответов на вопросы есть протоколы отладки. RTFM Accessing Debugging Mode . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2015, 21:26 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38839308&tid=1875124]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 447ms |

| 0 / 0 |
