Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Получение результата запроса на другой схеме / 4 сообщений из 4, страница 1 из 1
18.05.2011, 00:34
    #37266123
konred
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата запроса на другой схеме
Владелец приложения - APP_SCHEMA
Задача: Получить результат запроса(запрос это текст из поля TEXT) на схеме APP_SCHEMA_PUBLIC (в ней содержатся нужные таблицы для запроса).
В запросах не указывается схема.
Использую Report для вывода результата запроса, который использует PL/SQL функцию, возвращающую SQL запрос.
DECLARE
sel VARCHAR2(2000);
BEGIN
SELECT NVL(:TEXT,'SELECT 1 FROM DUAL') INTO sel
FROM DUAL;
EXECUTE IMMEDIATE 'ALTER SESSION SET CURRENT_SCHEMA = APP_SCHEMA_PUBLIC';
RETURN sel;
END;

Но запрос выполняется на данных схемы APP_SCHEMA, а надо на APP_SCHEMA_PUBLIC.
Как это можно сделать?
...
Рейтинг: 0 / 0
19.05.2011, 16:45
    #37269865
konred
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата запроса на другой схеме
Верней, текущую схему изменить получается (это показывает представление v$session).
А запрос выполняется на схеме владельца приложения (на APP_SCHEMA). Куда 'копать'?
...
Рейтинг: 0 / 0
20.05.2011, 11:00
    #37270967
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата запроса на другой схеме
Немного не понял, зачем это делается? Чтобы динамически подставлять нужную схему?
Можно строить отчеты на основе dynamic sql, или указывать имя схемы в запросах.

Может я чего-то не догоняю, но вероятная причина:
дело в том что есть разница между сессиями oracle и сессией apex. Под сессией apex в течение запросов пользователей создаются различные сессии oracle, тем самым, например, все переменные пакетов сбрасываются, и это будет работать гарантированно только в одном блоке pl/sql кода. Можно попробовать прописать как-нибудь этот код, чтобы он выполнялся для каждой сессии oracle.
...
Рейтинг: 0 / 0
20.05.2011, 17:02
    #37271957
konred
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение результата запроса на другой схеме
SvUser,

SvUserНемного не понял, зачем это делается? Чтобы динамически подставлять нужную схему?
Можно строить отчеты на основе dynamic sql
Хочется как на SQL-ex.ru вводится запрос (с неизвестным заранее количеством и названий столбцов, таблиц) в текстовое поле и выдается результат.
Схема к которой надо выполнять запросы одна и известна - APP_SCHEMA_PUBLIC.
Есть Report, строящий отчет на основе запроса который вернет pl/sql блок. Как раз то что надо, но он выполняет запрос на схеме владельца приложения(*), даже если в сессия oracle указана другая текущая схема.

SvUser или указывать имя схемы в запросах.
Если это к запросам которые пишутся в поле TEXT, то от этого как раз и хочется уйти.


SvUserМожет я чего-то не догоняю, но вероятная причина:
дело в том что есть разница между сессиями oracle и сессией apex.
Видимо.


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


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