Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое ссылка к базе / 11 сообщений из 11, страница 1 из 1
12.01.2012, 12:27
    #37610773
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Полазил по форуму, но ничего не нашел. Собственно у меня проект из 40 страниц, на каждой SQL запрос и все данные эти запросы берут с тестовой базы. Можно ли написать какую ни будь функцию/процесс что бы конектиться к другой базе.

Тоесть, например написанно "select * from table@ dbtest " я кликаю на линк(или кнопку) и на все 40 страницах запрос меняется на "select * from table@ dbreal ".

Заранее спасибо
...
Рейтинг: 0 / 0
12.01.2012, 13:36
    #37610969
flame33
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Daedroth,
а если в application item сохранять название БД, и менять его при нажатии на кнопку. А в запросах во from написать название переменной
...
Рейтинг: 0 / 0
12.01.2012, 13:42
    #37610983
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
flame33,

То есть написать что-то типа "select * from :DB_NAME"? Я правильно понял?
...
Рейтинг: 0 / 0
12.01.2012, 13:54
    #37611013
flame33
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Daedroth,
да. только не знаю, даст ли apex так написать, нет возможности проверить. наверное придется отключить парсинг запроса. и переменная должна быть уровня application, чтобы на всех страницах поменять сразу
...
Рейтинг: 0 / 0
12.01.2012, 13:58
    #37611025
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
flame33,

APEX ругается. Как парсинг запроса отключить в репорте я знаю, но в айтемах как это сделать?
...
Рейтинг: 0 / 0
12.01.2012, 14:58
    #37611199
haXbat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Daedroth,

Попробуйте через синонимы.
Код: plsql
1.
CREATE PUBLIC SYNONYM mytable FOR mytable@dbtest;


А по кнопке пересоздавайте синоним с dblink-ом на другую базу.
...
Рейтинг: 0 / 0
12.01.2012, 15:04
    #37611212
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
haXbat,

У меня 6 (или 8?) разных таблиц. Мне что 6 кнопок делать?
...
Рейтинг: 0 / 0
12.01.2012, 15:07
    #37611224
haXbat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Daedroth,

Я ошибся, синоним-то для всех изменится, а не в рамках приложения.
...
Рейтинг: 0 / 0
12.01.2012, 16:14
    #37611379
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
Почему, возможно стоит поэкспериментировать, без PUBLIC, может отдельную схему создать с синонимами

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
for ... in (select object_name from all_objects@dbreal t
            where owner = 'OWNER'
              and object_type in ('TABLE','VIEW','SEQUENCE',...)) loop
            
    execute immediate 'create synonym ...';
end loop;

for ... in (select table_name from all_tables@dbtest t
            where owner = 'OWNER'
              and object_type in ('TABLE','VIEW','SEQUENCE',...)) loop
            
    execute immediate 'drop synonym ...';
end loop;



Хотя стоит ли игра свеч, непонятно, может проще 2 апекса поставить? один на dbtest, другой на dbreal
...
Рейтинг: 0 / 0
12.01.2012, 16:25
    #37611399
SvDev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
И еще можно попробовать сделать 2 схемы, в одной синонимы на dbtest, в другой синонемы на dbreal

и триггер примерно такой

CREATE OR REPLACE TRIGGER trig_test
AFTER LOGON ON DATABASE
DECLARE
BEGIN
IF (USER = 'APEX_PUBLIC_USER' или другой под которым апекс ходит) then

if (кнопка нажата) THEN

execute immediate 'alter session set current_schema = SCHEMA1';
else
execute immediate 'alter session set current schema = SCHEMA2';
END IF;
END trace_trig;
/

но это я не пробовал, нужно эксперименторовать, осторожно
...
Рейтинг: 0 / 0
12.01.2012, 16:30
    #37611413
Daedroth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамическое ссылка к базе
SvDev,

Спасибо. Будем эксперементировать
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое ссылка к базе / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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